PDA

View Full Version : ساخت تریگر



mohsen_metn
سه شنبه 22 فروردین 1391, 09:41 صبح
سلام
من جدولی با نام tbFile دارم با فیلد های زیر

ID
Name
Family
می خواهم تریگر هایی بسازم که قبل از اعمال insert و Update مقادیر جدید و قبلی در جدول دیگری که با نام tblog و دقیقا فیلد های مشابه ساخته ام ذخیره شود
لطفا کمک کنید

SReza1
چهارشنبه 30 فروردین 1391, 15:44 عصر
يك فيلد Action هم به عنوان نوع عمليات در جدول Log برات اضافه كردم(u = UPDATE و d = DELETE و i = Insert )
در ضمن پيشنهاد ميدم اين جدول در database ديگري بسازيد. تريگر نيز براي FOR INSERT, UPDATE, DELETE باشد




DECLARE
@DelCount NUMERIC ,
@InsertCount NUMERIC

SELECT @DelCount = COUNT(ID) FROM Deleted
SELECT @InsertCount = COUNT(ID) FROM Inserted

IF (@DelCount > 0) AND (@InsertCount = 0)
INSERT INTO tblog (ID , Name , Family , Action)
SELECT ID , Name , Family , 'D' FROM Deleted
ELSE
IF (@DelCount = 0) AND (@InsertCount > 0)
INSERT INTO tblog (ID , Name , Family , Action)
SELECT ID , Name , Family , 'I' FROM Inserted
ELSE
IF (@DelCount > 0) AND (@InsertCount > 0)
INSERT INTO tblog (ID , Name , Family , Action)
SELECT ID , Name , Family , 'U' FROM Inserted