在SQL Server 2008中,我使用觸發器來捕獲對數據庫中的特定表進行的所有更改。我的目標是捕捉整個變化。也就是說,要捕獲正在插入的數據,而不僅僅是插入數據。在觸發器中,我使用DBCC INPUTBUFFER返回的結果集的EventInfo列來獲取當前正在執行的SQL語句以及Parameters列以獲取所用參數的計數。這在大多數情況下都適用,但是當外部應用程序使用ADO.NET執行查詢或使用SSMS中的「編輯頂部200行」插入/刪除行時,EventInfo沒有參數值。可以使用DBCC INPUTBUFFER完全捕獲參數化查詢嗎?
例如,如果一個查詢字符串在查詢窗口或作爲在ADO.NET非參數化串查詢執行,EventInfo表示:
INSERT INTO DTS_TABLE ([ID] ,[DTS_ID] ,[DTS] ,[TICS]) VALUES (10, 9, GETDATE(), 91234)
當使用編輯前200行插入相同數據或ADO.NET一個參數化查詢,EventInfo顯示(新行增加了可讀性):
(@id int,@dtsid int,@dts datetime,@tics int)
INSERT INTO DTS_TABLE ([ID] ,[DTS_ID] ,[DTS] ,[TICS])
VALUES (@id, @dtsid, @dts, @tics)
反正有我的觸發範圍內訪問的參數值?
我有同樣的問題,這裏是我尋找答案的理由:我需要殺死一個'插入'操作阻止近250選擇。在我殺死它之前,我想知道哪些數據會丟失。 – KSK 2014-10-30 08:56:53
如果有人知道如何獲得參數 – davey 2015-01-21 11:53:51