none
Descobrir nome da tabela da trigger RRS feed

  • Pergunta

  • Rapaziada...a dúvida dessa vez é bem simples:

     

    há alguma maneira de descobrir, na própria trigger, o nome da tabela que a origina?

    terça-feira, 4 de setembro de 2007 00:44

Respostas

  • eu costumo criar a trigger com o mesmo nome da tabela no inicio entao @@procid eu pego o nome da trriger que contem o nome da tabela, como eu uso triigers separadas para cada acao insert, update ou delete pego tambem a acao segue um exemplo

     

     

     

    Create Table Exemplo (campo int)

    Create Trigger Tr_Exemplo On Exemplo
    After Insert
    as
     Declare @Table_Name Varchar(10)
     Select @Table_Name = Object_Name(@@PROCID)

     Print @Table_Name


    Insert into exemplo (campo) Values (1)

     

    Abs;

     

    terça-feira, 4 de setembro de 2007 10:24
  • Elber,

     

    Pesquisando no Boosk On-Line do SQL Server, encontrei algumas informações e exemplos, sobre as variáveis de sistema @@ProcID, como também sobre as functions Object_ID(), Object_Name(), Object_Schema_Name().

     

    Talvez não seja exatamente o que você deseja, mas sempre é bom conhecer outros recursos existentes!!!

    terça-feira, 4 de setembro de 2007 11:34

Todas as Respostas

  •  

    E aí Elber...

     

    Eu até tenho algumas triggers de auditoria, mas em todas uso o nome da tabela diretamente no código, ou informando numa variável no início do código. Que eu saiba não tem como pegar esse informação durante a execução.

     

     

     

    Abraço

    terça-feira, 4 de setembro de 2007 02:09
  • Fala Alexandre...

    pois então...também estou fazendo isso...no início, determino uma variável para o nome da tabela...

    queria fazer ficar de forma automática para não precisar trocar o valor da variável tbm...

    bom...de qualquer maneira, é só um conceito que não será fundamental no código, mas sim só por conhecimento...

    vlw o help...abraço!

    terça-feira, 4 de setembro de 2007 04:01
  • eu costumo criar a trigger com o mesmo nome da tabela no inicio entao @@procid eu pego o nome da trriger que contem o nome da tabela, como eu uso triigers separadas para cada acao insert, update ou delete pego tambem a acao segue um exemplo

     

     

     

    Create Table Exemplo (campo int)

    Create Trigger Tr_Exemplo On Exemplo
    After Insert
    as
     Declare @Table_Name Varchar(10)
     Select @Table_Name = Object_Name(@@PROCID)

     Print @Table_Name


    Insert into exemplo (campo) Values (1)

     

    Abs;

     

    terça-feira, 4 de setembro de 2007 10:24
  • Elber,

     

    Pesquisando no Boosk On-Line do SQL Server, encontrei algumas informações e exemplos, sobre as variáveis de sistema @@ProcID, como também sobre as functions Object_ID(), Object_Name(), Object_Schema_Name().

     

    Talvez não seja exatamente o que você deseja, mas sempre é bom conhecer outros recursos existentes!!!

    terça-feira, 4 de setembro de 2007 11:34
  • Opa!

    Pude perceber que as duas últimas respostas coiincidem...

    Com certeza Júnior...Foi aquilo que falei: não é algo tão fundamental pra necessidade atual, entretanto considerado extremamente importante conhecer outros caminhos, alternativas e recursos que podem melhorar meu perfil técnico futuramente.

     

    Vou estar implementando os testes e sem sombra de dúvidas retornarei ótimos resultados!

     

    Abraços à todos,

    quarta-feira, 5 de setembro de 2007 00:48
  • Elber,

     

    É isso mesmo, o importante é conhecer todos os caminhos possíveis!!!

     

    quarta-feira, 5 de setembro de 2007 12:08
  • Galera! apenas para confirmar a resolução do tópico, a variável @@PROCID aninhada à função OBJECT_NAME funcionou perfeitamente!

    como costumo trabalhar com padronização nos nomes de todos objetos do sistema, e soh pelo nome da trigger consigo identificar todas suas caractrísticas e inclusive o objeto table que a dispara, ficou bem fácil descobrir o nome da trigger e depois aplicar algumas funções de trabalho com texto para descobrir o nome da tabela que originiva a trigger...

     

    show de bola!

    agradeço a todos mais uma vez pelo help!

     

    Abraços!

    quarta-feira, 5 de setembro de 2007 23:50