• Most of the code samples are untested and need fixing if you want to see them work.

    Here's what I've settled on to cover most activities - created in all mission-critical databases:

    CREATE TRIGGER Trig_DBEvents ON DATABASE FOR DDL_DATABASE_LEVEL_EVENTS

    AS

        INSERT master.dbo.ddl_all_databases

            (

                DateTime,

                LoginName,

                DBName,

                UserName,

                EventType,

                CommandText

            )

        SELECT  GETDATE(),

                EVENTDATA().value('(/EVENT_INSTANCE/LoginName)[1]','nvarchar(50)'),

                EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]','nvarchar(50)'),

                EVENTDATA().value('(/EVENT_INSTANCE/UserName)[1]','nvarchar(50)'),

                EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(50)'),

                EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(1024)')

    GO