2013-01-22 47 views
2

可能重複:
Create Trigger to log SQL that affected table?查找查詢發射的扳機

是SQL Server 2008可以編寫一個觸發器,它會投入我的日誌表,觸發它的查詢?我將解釋它的例子:

我有一個表,TAB1和日誌表LOG。我執行從TAB1刪除行的查詢,並且我希望在我的LOG表中有該查詢(或其他什麼可以幫助我識別誰在TAB1上執行刪除查詢)。

任何想法如何實現?

+0

您可以爲此使用擴展事件。 –

回答

0

唯一的辦法在我腦海中是明確地通過CONTEXT_INFO 這個進入過程

declare @bin varbinary(128) = (cast(object_name(@@Procid) as varbinary(128)) 
set context_info @bin 

傳遞過程的名稱,並用它在觸發

declare @procName as nvarchar(max) 
set @procName = cast(context_info() as nvarchar(max)) 

我不知道任何其他方式這樣做

編輯: 我認爲你可能會感興趣clickie