0
我拿到了這個示例代碼。它適用於所有T-SQL代碼,但如果我通過鼠標單擊在SSMS中刪除表,事件不會被跟蹤 - 問題是爲什麼?DDL觸發器肯定無法啓動,爲什麼?
-- create the table to store the events
CREATE TABLE dbo.CREATE_TABLE_LOG (
eventTime datetime
, eventOwner nvarchar(100)
, eventTSQL nvarchar(3000)
)
GO
-- create the DDL trigger
CREATE TRIGGER DDLTrigger_CreateTable ON DATABASE FOR create_table, alter_table, drop_table
AS
DECLARE @data XML
SET @data = EVENTDATA()
INSERT INTO CREATE_TABLE_LOG
VALUES (
GETDATE()
, CURRENT_USER
, @data.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]',
'nvarchar(1000)')
)
GO
Thx爲您的問題。在雙工檢查我的工作後,我會提供更多信息。 – Ice 2012-04-13 21:42:36
我按照提到的檢查過,並且:它工作正常。如果在SSMS中單擊並且重新創建表...(insert into語句和重命名錶未記錄),則ALTER Table有點棘手。 – Ice 2012-04-16 11:14:08