الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حذف سجلات تلقائيا دون تدخل المستخدم

مغلق
بدأه prof_1982 في 31 يناير 2005 · 6 رد · 653 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

فيه سؤال سأطرحه هنا للخبراء ،، كيف ممكن نخلي قاعدة البياتات تحذف مجموعه سجلات من جدول في تاريخ معين دون تدخل المستخدم ؟

السؤال بشكل اخر

يعني لو انا عندي جدول فيه مجموعه سجلات وحاطط حقل من نوع تاريخ في هذا الجدول ،، كيف بدي اخلي السجلات اللي بتاريخ معين تحذف لوحدها تلقائي من الجدول ؟

تحياتي للجميع

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#2

سنقوم بانشاء Trigger يوقم بمسح مجموعة السجلات التى قبل تاريخ معين و سيعمل هذا ال Trigger عند ادخال حقول جديده اولاً سنقوم بانشاء جدول للاختبار و نضع به حقل من نوع datetime

CREATE TABLE test_trigger
(col1 datetime,
 col2 char(6) )
GO

ضع به مجموعه من البيانات

INSERT INTO test_trigger VALUES ('20050101', 'First')
INSERT INTO test_trigger VALUES ('20050220', 'Second')
INSERT INTO test_trigger VALUES ('20051119', 'Third')
INSERT INTO test_trigger VALUES ('20010101', 'Fourth')
INSERT INTO test_trigger VALUES ('20000220', 'Fifth')
GO

طريقة ادخال التاريخ قد تبدو غريبه لك و لكنها افضل طريقه للتغلب على مشكلة ال regional setting المختلفه التاريخ تم ادخاله بهذا الشكل yyyymmdd

و الان سنقوم بانشاء trigger من نوع after insert

CREATE TRIGGER delete_test
ON test_trigger AFTER insert
AS
delete from test_trigger where col1 < '20050101'
GO

هذا الزناد trigger سيعمل بعد كل عملية ادخال لحقول جديده لمسح كل السجلات التى تحتوى على حقل تاريخ يحتوى على قيمه تاريخ قبل الاول من يناير 2005

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 1 فبراير 2005 في 13:11

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

السلام عليكم

يا عيني عليك ، والله انك محترف بدي اجرب الطريقة ثم اوافيك بالتفاصيل .

تحياتي لك اخي طارق ابراهيم .

تم تعديل هذه المشاركة بواسطة prof_1982 في 1 فبراير 2005 في 14:44

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#4

أخي طارق ..

هل هذه الطريقة أفضل .. أم طريقة إنشاء Job وجعله يشغل الإجراء تلقائياً

#5

اخ prof_1982 لا تضحك علينا احد فال trigger ليست مشكله و طلبك بسيط

اهلاًَ اخ احمد الحربى

حقيقه فى هذه الحاله انت لا تحتاج لل JOB و لكن فى حالات اخرى قد تحتاج لل JOB مثل استخدامها فى ال Backup و ال Restore او الانتهاء من ال Replication

او اى عمليه انت ترى انك تحتاج لاستخدام مميزات ال JOB فيها

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 2 فبراير 2005 في 16:12

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#6

السلام عليكم

جزاكم الله خيرا

كيف يمكن تشغل JOB بشكل تلقائى

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#7

اعمل له Shedule من داخل ال JOB

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

هذا الموضوع مغلق.

مواضيع مشابهة