Array
(
)

Select p/ retornar se uma Trigger esiste

Marcioih
   - 13 jan 2006

Olá pessoal,

Gostaria de saber como faço um select no SQL Server 2000
para retornar se uma trigger já existe na tabela que eu indicar.

Eu sei trazer as Tabelas, Nomes de Campo, Views e Stored Procedure
mas Trigger não estou conseguindo fazer.

Pessoal, por favor me ajudem!

Desde já, agradeço a atenção!

Obrigado! :)

Viniciusnunes
   - 16 jan 2006

Caro Amigo

segue o script para ajudar vc.

declare @NomeTrigger varchar(50)
declare @NomeTabela varchar(50)

set @NomeTrigger = ´TRIGGER_TABELA´
set @NomeTabela = ´NOME_TABELA´

SELECT so.id,
so.name,
so.xtype,
sot.id,
sot.name,
sot.xtype

FROM sysobjects so , --PROCURA PELA TABELA
sysobjects sot -- PROCURA PELA TRIGER
WHERE
so.name = @NomeTabela
and so.xtype = ´U´
and so.deltrig is not null
and so.instrig is not null
and so.updtrig is not null
and sot.ID = case when so.deltrig is not null then so.deltrig
when so.instrig is not null then so.instrig
when so.updtrig is not null then so.updtrig
end
and sot.xtype = ´TR´
and sot.name = @NomeTrigger

Obs : Depois que vc resolver o seu problema tente enteder o que eu fiz.

Boa Sorte

Se precisar estou as ordens.

Emerson
   - 24 jan 2006

para saber se há alguma trigger na tabela:
#Código

select
  *
from
  dbo.sysobjects
where
  parent_obj = object_id(N´[dbo].[NomeDaSuaTabela]´)
  and (OBJECTPROPERTY(id, N´IsTrigger´) = 1)


para saber se há uma trigger específica na tabela:
#Código
select
  *
from
  dbo.sysobjects
where
  id = object_id(N´NomeDaSuaTrigger´)
  and parent_obj = object_id(N´[dbo].[NomeDaSuaTabela]´)
  and (OBJECTPROPERTY(id, N´IsTrigger´) = 1)