use master
go
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [trgLogDDLEvent] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
DECLARE @data XML
SET @data = EVENTDATA()
IF @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)')
<> 'CREATE_STATISTICS'
INSERT INTO ddl_changelog..DDLChangeLog
(
EventType,
ObjectName,
ObjectType,
DatabaseName,
SchemaName,
SystemUser,
AppName,
HostName,
tsql ,
createddate
)
VALUES (
@data.value('(/EVENT_INSTANCE/EventType)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectName)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectType)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/DatabaseName)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/SchemaName)[1]',
'nvarchar(100)'),
system_user , app_name (),host_name(),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]',
'nvarchar(max)') ,
getdate()
) ;
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ENABLE TRIGGER [trgLogDDLEvent] ON DATABASE
go
use model
go
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [trgLogDDLEvent] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
DECLARE @data XML
SET @data = EVENTDATA()
IF @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)')
<> 'CREATE_STATISTICS'
INSERT INTO ddl_changelog..DDLChangeLog
(
EventType,
ObjectName,
ObjectType,
DatabaseName,
SchemaName,
SystemUser,
AppName,
HostName,
tsql ,
createddate
)
VALUES (
@data.value('(/EVENT_INSTANCE/EventType)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectName)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectType)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/DatabaseName)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/SchemaName)[1]',
'nvarchar(100)'),
system_user , app_name (),host_name(),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]',
'nvarchar(max)') ,
getdate()
) ;
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ENABLE TRIGGER [trgLogDDLEvent] ON DATABASE
go
use otherdb
go
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [trgLogDDLEvent] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
DECLARE @data XML
SET @data = EVENTDATA()
IF @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)')
<> 'CREATE_STATISTICS'
INSERT INTO ddl_changelog..DDLChangeLog
(
EventType,
ObjectName,
ObjectType,
DatabaseName,
SchemaName,
SystemUser,
AppName,
HostName,
tsql ,
createddate
)
VALUES (
@data.value('(/EVENT_INSTANCE/EventType)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectName)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/ObjectType)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/DatabaseName)[1]',
'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/SchemaName)[1]',
'nvarchar(100)'),
system_user , app_name (),host_name(),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]',
'nvarchar(max)') ,
getdate()
) ;
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ENABLE TRIGGER [trgLogDDLEvent] ON DATABASE
go
...etc for each db