考慮對錶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