Tsql 具有多行的T-SQL更新触发器

Tsql 具有多行的T-SQL更新触发器,tsql,triggers,Tsql,Triggers,考虑表a中更新后的触发器。 对于每次更新,触发器都应更新表B中的所有记录。 然后考虑这个查询: UPDATE A SET X = Y 显然有很多行被更新了。在更新之后,触发发生。 现在,如果触发器将使用插入的表,并且您希望使用临时表插入的每一行更新表B,并且在MSDN中不建议使用游标,您将如何做 谢谢你我不知道你到底想在更新触发器中做什么,但是你可以 UPDATE dbo.B SET someColumn = i.Anothervalue FROM Inserted i WHERE b.Cr

考虑表a中更新后的触发器
。
对于每次更新,触发器都应更新表B中的所有记录。
然后考虑这个查询:

UPDATE A SET X = Y 
显然有很多行被更新了。在更新之后,触发发生。 现在,如果触发器将使用
插入的
表,并且您希望使用临时表
插入的每一行更新表B,并且在MSDN中不建议使用游标,您将如何做


谢谢你

我不知道你到底想在更新触发器中做什么,但是你可以

UPDATE dbo.B
SET someColumn = i.Anothervalue
FROM Inserted i
WHERE b.Criteria = i.Criteria

或者别的什么-你需要告诉我们更多关于你想对表B做什么!但是绝对可以更新、插入或其他内容,而无需使用光标和处理插入的
表中的多行。

我不知道您在更新触发器中到底想做什么,但是您可以,例如

UPDATE dbo.B
SET someColumn = i.Anothervalue
FROM Inserted i
WHERE b.Criteria = i.Criteria

或者别的什么-你需要告诉我们更多关于你想对表B做什么!但绝对可以更新、插入或其他内容,而无需使用光标和处理插入的
表中的多行。

我将假设表a通过键与表B相关(必须假设,因为您没有发布详细信息)

如果是这种情况,您可以使用子查询或与插入的
联接来选择表B上需要更改的行

UPDATE tableB B
SET B.colx = someValue
WHERE B.id IN
(
    SELECT b_id 
    FROM INSERTED
)

我将假设表A通过一个键与表B相关(必须假设,因为您没有发布任何详细信息)

如果是这种情况,您可以使用子查询或与插入的
联接来选择表B上需要更改的行

UPDATE tableB B
SET B.colx = someValue
WHERE B.id IN
(
    SELECT b_id 
    FROM INSERTED
)

为了得到准确的答案,你需要公布两个表的结构以及它们之间的关系。为了得到准确的答案,你需要公布两个表的结构以及它们之间的关系。这正是我想知道的。。我可以将它与插入表中的所有行进行匹配。这正是我想知道的。。我可以将它与插入表中的所有行进行匹配。