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

trigger يقوم بعمل ترصيد للكميات

بدأه mimo في 26 مارس 2010 · 1 رد · 890 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندى جدول يتم فيه تخزين كل الحركات على الصنف والكمية الواردة والمنصرفة اريد عمل ترجير عند حدوث حركة على هذا الجدول سواء اضافة او تعديل او حذف يقوم هذا التجر بعمل جمع للكميات المضافة ووضعها فى عمود فى نفس الجدول وكذلك الكميات المنصرفة

ولكم جزيل الشكر

#2

سافترض انه لديك جدولين هما Brands و هو يحتوي على الأصناف و الثاني Brands_movement و به حركة الأصناف و هو يحتوي على الأعمدة التالية :

ID

Brand_ID: مرجع للأصناف و مربوط بجدول Brands

brands quantity_in:الكمية الواردة

qantity_out : الكمية المنصرفة

quantity_in_sum : مجموع الكميات الواردة

quantity_out_sum: مجموع الكميات المنصرفة

سنفوم بعمل تريجر يجمع الكميات عند القيام بإدراج حركة جديدة، سيكون التريجر كالآتي:

 create trigger brand_trigger on dbo.brands_movement after insert

إنشاء تريجر سيطبق على الجدول brands_movement بعد القيام بعملية الإدخال

 as declare @brand_id int declare @qun_in_sum int declare @qun_out_sum int

إعلان ثلاث متغيرات : @brand_id لجلب قيمة brand_id من الجدول @qun_in_sum لجلب الكمية المضافة @qun_out_sum لجلب قيمة الكمية المنصرفة

 begin select @brand_id=brand_id from inserted select @qun_in_sum=sum(quantity_in) from brands_movement where brand_id=@brand_id select @qun_out_sum=sum(quantity_out) from brands_movement where brand_id=@brand_id

السطر الثاني سيقوم بجلب brand_id من الصف الذي سيتم الادخال فيه، و السطر الثالث سيقوم بجمع الكمية المضافة على أساس @brand_id و كذلك السطر الرابع

 update brands_movement set qun_in_sum=@qun_in_sum,qun_out_sum=@qun_out_sum where brand_id=@brand_id end go

الكود السابق للتعديل على الحقلين quantity_in_sum و quantity_out_sum حيث سيتم جمع الكميات المضافة و وضع القيمة في الحقل quantity_in_sum و وضع ناتج جمع الكميات المنصرفة في الحقل quantity_out_sum لعمل تريجر ينفذ عند التعديل قم فقط بتغيير السطر

 after insert

إلى

 after update

و مثل ذلك عند الحذف ... اتمنى أن يكون هذا ما تريده.....

تم تعديل هذه المشاركة بواسطة بهاء صلاح الدين فراج في 28 مارس 2010 في 00:21

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