Update触发器需要帮助t-sql

时间:2011-03-14 13:47:16

标签: tsql triggers

如何在transact sql中的Update上创建触发器,在更新的行中设置另一个字段? 例如:

UPDATE table SET true_false = 1 WHERE ID = @ID

将运行命令:

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

。 请帮忙。我无法弄明白;)

1 个答案:

答案 0 :(得分: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