如何捕獲更新觸發器中的修改行將其插入到其他表中?在SQL更新觸發器中捕獲修改的行
1
A
回答
2
在SQL Server中,我們只有兩個虛表,你可以在觸發器workwith,這些都是「未插入」和「刪除」。例如:
插入操作:插入新記錄時「INSERTED」虛擬表包含新插入的記錄,其中「DELETED」虛擬爲空。
更新操作:更新任何記錄時,首先將舊記錄放入「DELETED」虛擬表中,並且新更新的記錄由「INSERTED」虛擬表保存。
這意味着您可以通過「已刪除」虛擬表從「已刪除」和當前更新值中獲取舊值。您可以查詢他們喜歡:
-- To get the old record value
SELECT * FROM DELETED
-- To get the updated value
SELECT * FROM INSERTED
刪除操作:當你刪除任何特定的記錄已刪除的記錄會被插入到「已刪除」虛表。
SELECT * FROM UPDATED
- 給出錯誤。試試這個:
DECLARE @OldVal INT,@NewVal INT
SELECT @OldVal =列缺失了
SELECT @NewVal =列從安裝
握住老新的值你可以比較他們的狀態。
1
使用inserted
表。
這是一個非常簡單的例子:
CREATE TRIGGER <name> ON <table> FOR UPDATE
AS
INSERT INTO <otherTable> (<Columns>)
SELECT <Columns>
FROM Inserted
GO
相關問題
- 1. SQL Server更新觸發器,獲取只修改的字段
- 2. SQL觸發器更新行
- 3. 使用和UPDATE觸發器修改正在更新的行
- 4. 在T-SQL中捕獲更新的行
- 5. 只有當列被修改時SQL更新觸發器
- 6. sql檢測更新觸發器(sql server 2005)中修改的字段?
- 7. 觸發器只修改更新/插入的行
- 8. 在sql server中更新觸發器
- 9. 微軟sql觸發器更新多行
- 10. SQL Server觸發器 - 複製行更新
- 11. T-SQL觸發器更新
- 12. SQL觸發器更新
- 13. SQL Server觸發器更新
- 14. 更新觸發器SQL Server
- 15. SQL更新觸發器
- 16. 更改Sql Server 2005中的觸發器
- 17. SQL Server 2008更改數據捕獲與審計跟蹤中的觸發器
- 18. 修改更新語句包含觸發器中的主鍵
- 19. SQL服務器更新觸發器,獲得前場和更新
- 20. 多行更新SQL觸發器從單一更新SQL語句
- 21. SQL Server觸發器 - 修改id列
- 22. SQL - 修改或刪除觸發器
- 23. 如何在SQL觸發器中獲取更新列的值
- 24. 如何在更新SQL觸發器中獲取原始值
- 25. 更新觸發器在SQL Server 2008
- 26. SQL Server INSERT在後更新觸發器
- 27. 多行更新觸發器
- 28. Oracle觸發器更新行
- 29. 多行更新觸發器
- 30. 如何在sql中更改數據庫時執行觸發器
如果更新語句影響多行,則您的建議會引發錯誤,因爲觸發器是按語句觸發的,而不是按行觸發的。您不能在插入或刪除的表中假設單個行。永遠。 –