更新另一个表后触发更新一个表

时间:2013-02-26 13:46:27

标签: sql sql-server triggers

我想在更新表Y之后编写更新表X的触发器。

我试图搜索网络并编写一些代码,但没有。

目前我的代码是:

CREATE TRIGGER trg_Update_YCR_Status
ON dbo.tbl_YellowCard_Transactions
AFTER UPDATE,INSERT 
AS
BEGIN

    UPDATE  dbo.tbl_YellowCard_Requests
    SET YellowCard_Status = 

END

我该怎么做?

1 个答案:

答案 0 :(得分:1)

你有正确的想法。您只需在表Y上创建一个触发器,并对表X发出UPDATE语句,就像您上面一样。

在SQL Server中,如果要将表X中的新值基于刚刚插入的值,则可以引用inserted表,该表表示要添加或更新的数据。*例如:

UPDATE requests
SET requests.YellowCard_Status = inserted.YellowCard_Status 
FROM dbo.tbl_YellowCard_Requests requests 
JOIN inserted ON requests.FieldName = inserted.FieldName

我知道你可以在SQL Server中执行此操作。我不确定这是否适用于其他RDBMS。

*对于INSERT语句,inserted表包含任何新行。对于UPDATE语句,将有一个deleted表包含旧数据和一个inserted表,其中包含更新后的新数据。