none
Log RRS feed

  • Pergunta

  • Galera tem como eu saber qual instrução foi executada para uma tabela específica ? Estou usando o SQL 2008

     

    Obrigado


    SirSmart
    • Movido Gustavo Maia Aguiar sexta-feira, 30 de setembro de 2011 02:48 (De:SQL Server - Desenvolvimento Geral)
    quinta-feira, 29 de setembro de 2011 19:20

Respostas

  • DDL triggers são acionadas quando um evento, que você especifica, acontece em um determinado tipo de objeto (SERVER,DATABASE, TABLE), por exemplo uma DDL Trigger para Indeces:

    --01 - Cria uma tabela para armazenar os dados gerados pela Trigger:

    CREATE TABLE dbo.AlteracaosIndeces

    (

    EventData xml NOT NULL,

    DataAlteracao datetime NOT NULL DEFAULT GETDATE(),

    DBUser char(50) NOT NULL)

    GO

    --02 - Cria a Trigger para capturar os eventos:

    CREATE TRIGGER db_trg_PegaAlteracaoINDECE

    ON DATABASE

    FOR CREATE_INDEX, ALTER_INDEX, DROP_INDEX

    AS

    SET NOCOUNT ON

    INSERT dbo.AlteracaosIndeces(EventData, DBUser)

    VALUES (EVENTDATA(), USER)

    GO

    -- 

    Toda vez que algum indece for Criado, Alterado ou Dropado, no Banco de Dados da DDL Trigger ela insere um registro na tabela AlteracaosIndeces.

    O BOL tem esplicações e exemplos (http://msdn.microsoft.com/en-us/library/ms190989.aspx).

    Abraço.

    quinta-feira, 29 de setembro de 2011 20:36

Todas as Respostas

  • Boa Tarde SirSmart!

    Tem como você usar DDL triggers para capturar as instruções que estão sendo executadas no Banco, tabela, etc.

    Mas se a instrução já foi executada, não tem como!

    Abraço!

     

     

    quinta-feira, 29 de setembro de 2011 20:03
  • Como eu uso DDL triggers ?

     

    Obrigado


    SirSmart
    quinta-feira, 29 de setembro de 2011 20:14
  • DDL triggers são acionadas quando um evento, que você especifica, acontece em um determinado tipo de objeto (SERVER,DATABASE, TABLE), por exemplo uma DDL Trigger para Indeces:

    --01 - Cria uma tabela para armazenar os dados gerados pela Trigger:

    CREATE TABLE dbo.AlteracaosIndeces

    (

    EventData xml NOT NULL,

    DataAlteracao datetime NOT NULL DEFAULT GETDATE(),

    DBUser char(50) NOT NULL)

    GO

    --02 - Cria a Trigger para capturar os eventos:

    CREATE TRIGGER db_trg_PegaAlteracaoINDECE

    ON DATABASE

    FOR CREATE_INDEX, ALTER_INDEX, DROP_INDEX

    AS

    SET NOCOUNT ON

    INSERT dbo.AlteracaosIndeces(EventData, DBUser)

    VALUES (EVENTDATA(), USER)

    GO

    -- 

    Toda vez que algum indece for Criado, Alterado ou Dropado, no Banco de Dados da DDL Trigger ela insere um registro na tabela AlteracaosIndeces.

    O BOL tem esplicações e exemplos (http://msdn.microsoft.com/en-us/library/ms190989.aspx).

    Abraço.

    quinta-feira, 29 de setembro de 2011 20:36
  • Uma dúvida!

    Que tipo de instruções você quer capturar?

    quinta-feira, 29 de setembro de 2011 20:36
  • Boa tarde.

    Eu abordo um exemplo sobre isso em http://robersonferreira.com.br/auditorias_ddl. Dá uma olhada lá.

    Agora, se seu SQL é o 2008, você também pode usar o SQL Audit (http://technet.microsoft.com/pt-br/library/cc280448.aspx).


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 29 de setembro de 2011 20:42
  • O SQl Audit é a melhor opção caso o que você esteja querendo capturar sejam instruções tipo Select, Insert, Update e Delete.
    quinta-feira, 29 de setembro de 2011 20:46
  • SirSmart,

    Concordo como Pedro Vitor no SQL Server 2008 temos objeto SQL Audit que pode ser utilizado em nível Servidor, Banco de Dados e objetos para realizar diversos processos de auditoria.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    domingo, 2 de outubro de 2011 22:22
    Moderador