Tsql 需要更新触发器t-sql的帮助

Tsql 需要更新触发器t-sql的帮助,tsql,triggers,Tsql,Triggers,如何在transact-sql中创建更新时触发器,以在更新行中设置另一个字段? 例如: UPDATE table SET true_false = 1 WHERE ID = @ID 将运行以下命令: UPDATE table SET date = GETDATE() WHERE ID = @ID 。 请帮忙。我想不出来;) 请记住,您必须始终允许在您编写的任何触发器中进行多行更新 create trigger tr_U_YourTable on YourTable for Update as

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

UPDATE table SET true_false = 1 WHERE ID = @ID
将运行以下命令:

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

请帮忙。我想不出来;)

请记住,您必须始终允许在您编写的任何触发器中进行多行更新

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
创建触发器tr\U\U表
在你桌上
更新
作为
开始
如果更新(true\u false)
更新yt
set date=getdate()
从插入i
内部联接已删除
在i.ID=d.ID上
内部联接表yt
on i.ID=yt.ID
其中coalesce(i.true\u false,0)coalesce(d.true\u false,0)
结束

请记住,您必须始终允许在编写的任何触发器中进行多行更新

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
创建触发器tr\U\U表
在你桌上
更新
作为
开始
如果更新(true\u false)
更新yt
set date=getdate()
从插入i
内部联接已删除
在i.ID=d.ID上
内部联接表yt
on i.ID=yt.ID
其中coalesce(i.true\u false,0)coalesce(d.true\u false,0)
结束