考虑对表A. 触发after update
对于每一个更新触发器应更新表B. 所有记录然后考虑这个查询:多行T-SQL更新触发
UPDATE A SET X = Y
显然有更新了很多行。更新后触发器发生。 现在如果触发器将使用inserted
表,并且您想要用临时表inserted
的每一行更新表B,并且在MSDN中不建议使用游标,那么您将如何执行该操作?
谢谢
考虑对表A. 触发after update
对于每一个更新触发器应更新表B. 所有记录然后考虑这个查询:多行T-SQL更新触发
UPDATE A SET X = Y
显然有更新了很多行。更新后触发器发生。 现在如果触发器将使用inserted
表,并且您想要用临时表inserted
的每一行更新表B,并且在MSDN中不建议使用游标,那么您将如何执行该操作?
谢谢
我不知道你想在你的更新触发器到底该怎么做,但你可以如
UPDATE dbo.B
SET someColumn = i.Anothervalue
FROM Inserted i
WHERE b.Criteria = i.Criteria
或别的东西 - 你需要告诉我们更多关于你想用表B做什么!但是,无需使用游标并处理Inserted
表中的多行,就可以更新,插入或进行其他操作。
这正是我想知道的..我可以将它与插入表中的所有行进行匹配。 – 2010-06-27 18:21:17
我将假设表A通过一个键与表B相关(必须假设,因为你没有发布任何细节)。
如果是这样的话,你可以使用子查询或inserted
加入选择需要改变的表B.
UPDATE tableB B
SET B.colx = someValue
WHERE B.id IN
(
SELECT b_id
FROM INSERTED
)
是的,那两个表都是PK - FK约束.. – 2010-06-27 18:22:05
行你需要发布两个表的结构,以及它们如何相互关联以获得准确答案。 – Oded 2010-06-27 18:16:23