對於某些背景...我有一個表集合,並且我希望INSERT, UPDATE, DELETE
的每個表上都有一個觸發器。 SQL Server版本是SQL 2005.創建SQL觸發器查詢以將所有列更改轉儲爲單個變量
我有一個審計表Audit
,它包含一個名爲Detail
的列。我的最終目標是創建一個觸發器,它將獲取其表的列的列表,從Inserted,Updated或Deleted生成動態選擇查詢,執行一些字符串連接,並將該值轉儲到列Audit
。
這是我在想的過程:
- 獲取列名在表
sys.columns
- 從結果
Inserted
- 的foreach行基於列名
- 選擇動態SQL
SELECT
查詢,將列值連接成單個變量 - 將可變數據插入
Detail
列
所以,問題:
這是爲了完成我希望做的最好方法是什麼?還有一個更重要的問題,我該如何編寫這個查詢?
你有什麼版本的SQL Server - 2000,2005,2008,2008 R2?哪個版本 - 標準版,企業版?如果不低於2008 Enterprise - 您是否檢查過CDC(Change Data Captuere)? – BartekR 2012-01-07 22:26:54
@BartekR它已被更新。 – Steve 2012-01-07 22:45:23