Quando desejamos saber se um objeto foi Excluído/Alterado/Atualizado entre outros, podemos resolver esse problema utilizando o Default Trace do SQL. Por padrão esse recurso não está habilitado, para habilitar.

sp_configure ‘show advanced options’, 1;

GO

RECONFIGURE;

GO

sp_configure ‘default trace enabled’, 1;

GO

RECONFIGURE;

GO

Agora utilizaremos a DMV – fn_trace_gettable para nos beneficiar do default trace e realizar a inserção e um tabela para análise.Para nos facilitar, aqui irei realizar um JOIN com a DMV – sys.trace_events para conseguirmos recuperar o nome dos respectivos TRACE ID.

SELECT trace_event_id AS ClasseEvento, name AS NomeEvento

INTO #NomeEvento

FROM  sys.trace_events

 

SELECT * INTO DadosTraceDatabase

FROM fn_trace_gettable (‘C:\Program Files\Microsoft SQL Server\MSSQL11.DENALI\MSSQL\Log\log.trc’,default);

Depois das informações inseridas na tabela, realizamos a seguinte consulta.

SELECT   DB_NAME(DatabaseID) AS [Database]

        ,HostName

        ,ApplicationName

        ,LoginName

        ,StartTime

        ,ObjectID

        ,T.EventClass AS ClasseEvento

          ,E.NomeEvento

        ,ObjectName

        ,DatabaseName

FROM DadosTraceDatabase AS T

INNER JOIN #NomeEvento AS E

ON T.EventClass = E.ClasseEvento

Assim podemos visualizar informações como:

 

image

 

Sendo assim podemos tirar alguns proveitos desse recurso bem simples e que possivelmente um dia você irá precisar.