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