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;
sp_configure ‘default trace enabled’, 1;
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:
Sendo assim podemos tirar alguns proveitos desse recurso bem simples e que possivelmente um dia você irá precisar.