2011-03-14 86 views
0

如何在transact sql中更新时创建触发器,以便在更新的行中设置另一个字段? 例如:更新触发器所需的帮助t-sql

UPDATE table SET true_false = 1 WHERE ID = @ID 

将运行命令:

UPDATE table SET date = GETDATE() WHERE ID = @ID 

。 请帮忙。我想不出来;)

回答

3

请记住,您必须始终考虑到在您编写的任何触发器中进行多行更新的可能性。

create trigger tr_U_YourTable 
on YourTable 
for Update 
as 
begin 
    if update(true_false) 
     update yt 
      set date = getdate() 
      from Inserted i 
       inner join Deleted d 
        on i.ID = d.ID 
       inner join YourTable yt 
        on i.ID = yt.ID 
      where coalesce(i.true_false,0) <> coalesce(d.true_false,0) 
end 
+0

谢谢乔。它效果很好。 – 2011-03-14 13:57:14