Tsql 具有多行的T-SQL更新触发器
考虑表a中更新后的触发器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
。
对于每次更新,触发器都应更新表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
)
为了得到准确的答案,你需要公布两个表的结构以及它们之间的关系。为了得到准确的答案,你需要公布两个表的结构以及它们之间的关系。这正是我想知道的。。我可以将它与插入表中的所有行进行匹配。这正是我想知道的。。我可以将它与插入表中的所有行进行匹配。