Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cristian-anderson

Trigger para Instância

Recommended Posts

Pessoal,

Bom dia!

 

Estou com uma dúvida, pois preciso criar uma trigger para uma determinada instância que traga todas as alterações, inclusões, exclusões e suas respectivas datas.

 

Vi em uma resposta no fórum que poderia usar auditoria para essa resposta.

 

Alguém poderia me indicar qual a melhor opção e como posso fazer para gerar um relatório diário?

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cristian

este tipo de relatorio realmente deve ser feito por auditoria, masssssss, fica pesado você pegar todas as transacoes de um DB... claro que depende do tamanho do DB.

 

Qual a versao do seu SQL? Voce precisa realmetne saber os dados que foram alterados ou somente a tabela que teve um update?

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites


;WITH Utilizacao (object_id, Index_ID, Seek, Scan, LookUp, [Update])
As (
SELECT
   T.object_id, Index_Id,
   last_user_seek, last_user_scan, last_user_lookup, last_user_update
FROM sys.dm_db_index_usage_stats As I
INNER JOIN sys.tables As T ON I.object_id = T.object_id
WHERE database_id = DB_ID()), 

Referencias (object_id, DataReferencia, Operacao)
As (
SELECT object_id, DataReferencia, Operacao FROM Utilizacao
UNPIVOT
(DataReferencia FOR Operacao IN ([Seek], [Scan], [LookUp], [Update])) As UP), 

UltimoAcesso (object_id, UltimaData)
As (
SELECT object_id, MAX(DataReferencia) FROM Referencias
GROUP BY object_id), 

UltimasOperacoes (object_id, UltimaData, Operacoes)
As (
SELECT U.*,
   (SELECT DISTINCT Operacao FROM Referencias As R 
   WHERE U.object_id = R.object_id AND U.UltimaData = R.DataReferencia
   FOR XML AUTO)
FROM UltimoAcesso As U)

SELECT
   Name As Tabela, UltimaData As UltimoAcesso,
   REPLACE(REPLACE(Operacoes,'"/>',', '),'<R Operacao="','') As UltimasOperacoes
FROM sys.tables As T
LEFT OUTER JOIN UltimasOperacoes As U ON T.object_id = U.object_id
order by 1

 

Tem diversos meios para se fazer isso... uma delas, claro é a Auditoria.... vou tentar montar um tutorial sobre o assunto pq eh mto extenso....

 

O comando acima mostra os ultimos acessos as tabelas por database... já eh uma luz no fim do tunel ( e nao eh um trem http://forum.imasters.com.br/public/style_emoticons/default/devil.gif )

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK!!!

 

Show de bola.

 

Essa luz no fim do túnel já vai quebrar uma árvore.

 

Aguardo do tutorial.....Interessante essa questão quanto a Auditoria.

 

Amigão um abraço e mais um vez obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.