المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كود لتسجيل المتغيرات Update Trigger


as_radwan
31-Aug-2013, 01:37 PM
SQL Server 2005 Update Trigger Effect Multiple Rows
http://vorleakchy.wordpress.com/2008/08/14/sql-server-2005-update-trigger-effect-multiple-rows/

Hafandi
31-Aug-2013, 04:12 PM
شكرا على هذا الكود

Monzer Osama
01-Sep-2013, 10:02 AM
دعوني أشرح طبيعة عمل هذا الكود:



Create Table DeliveryType (
DeliveryTypeID int not null
Constraint pk_DeliveryType_DeliveryTypeID primary key,
DeliveryTypeDescription varchar(10) not null,
DeliveryCharge smallmoney not null
)
Create Table DeliveryTypeChanges (
ChangeID int identity(1,1) not null
Constraint pk_DeliveryTypeChanges_ChangeID primary key,
ChangeDateTime datetime not null,
DeliveryTypeDescription varchar(10) not null,
OldDeliveryCharge smallmoney not null,
NewDeliveryCharge smallmoney not null
)

القسم الأول من الكود يقوم بإنشاء جدولين هما:

1-DeliveryType
2-DeliveryTypeChanges

الكود الثاني:


CREATE TRIGGER trUpdateRecordDeliveryChargeChange
On DeliveryType
FOR UPDATE AS
IF UPDATE (DeliveryCharge)
BEGIN
INSERT DeliveryTypeChanges(ChangeDateTime, DeliveryTypeDescription, OldDeliveryCharge, NewDeliveryCharge)
SELECT GETDATE(), Inserted.DeliveryTypeDescription, Deleted.DeliveryCharge, Inserted.DeliveryCharge
FROM Inserted INNER JOIN Deleted
ON Inserted.DeliveryTypeID = Deleted.DeliveryTypeID
END

يقوم بانشاء تريغير TRIGGER على الجدول الأول (DeliveryType)
وظيفة هذا التريغير هو متابعة أي تغير في البيانات (UPDATE) في الجدول الأول وبالتحديد على على حقل الـ DeliveryCharge ,
الآن أي تغير يحدث يتم تسجيل هذا التغيير في الجدول الثاني DeliveryTypeChange ويسجل القيمة قبل وبعد التعديل

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