2013-04-09 27 views
6

Tôi có một bảng có tên Table1 với hai trường Systemname và Updatecount. Mỗi lần chèn với Systemname "SAP" nên đặt Updatecount thành 1 (giá trị ban đầu). Nếu tên hệ thống trường nhận được Cập nhật với Giá trị được xác định "SAP", thì trường Cập nhật sẽ được tăng lên 1.Kích hoạt MSSql trên Cập nhật Chèn (Updatecounter)

Làm cách nào để xác định trình kích hoạt?

Trả lời

5
create trigger tr on Table1 for insert,update 
as 
begin 
    if update(Systemname) 
     update Table1 
      set UpdateCount = (case when not exists(select * from deleted) then 1 else UpdateCount + 1 end) 
     from Table1 
     inner join inserted on Table1.[<YourPKField>] = inserted.[<YourPKField>] 
     where inserted.Systemname = 'SAP' 
end 
GO 
3

Có một bài viết tốt về trigger ở đây:

http://www.codeproject.com/Articles/38808/Overview-of-SQL-Server-database-Triggers

Bạn cần phải tạo:

CREATE TRIGGER [TRIGGER_ALTER_COUNT] ON [dbo].[tblTriggerExample] 
FOR INSERT, UPDATE 
AS 
BEGIN 
DECLARE @Var INT 
SELECT @Var = COUNT(*) FROM INSERTED 
UPDATE [dbo].[tblTriggerExample] SET AlterCount = AlterCount + Var 
      ,LastUpdate = GETDATE() 
    WHERE TransactionID = @TransID 
SELECT @Var = COUNT(*) FROM UPDATED WHERE SystemNAme = 'Var' 
UPDATE [dbo].[tblTriggerExample] SET AlterCount = AlterCount + @Var 
      ,LastUpdate = GETDATE() 
    WHERE TransactionID = @TransID 
END 
+0

Cảm ơn để liên kết bài viết. – callisto

Các vấn đề liên quan