Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Retornar um tipo de gatilho DML em uma tabela no SQL Server


No SQL Server, você pode usar o procedimento armazenado sp_helptrigger para retornar o tipo ou os tipos de gatilhos DML definidos na tabela especificada para o banco de dados atual.

Esse procedimento armazenado funciona apenas em gatilhos DML (não em gatilhos DDL).


Sintaxe


A sintaxe oficial é assim:
sp_helptrigger [ @tabname = ] 'table'   
     [ , [ @triggertype = ] 'type' ]

Você deve fornecer o nome da tabela como um argumento. Você pode prefixar com @tabname = , mas isso é opcional.

Você também tem a opção de especificar um tipo de gatilho. Isso pode ser INSERT , DELETE , ou UPDATE .

Exemplo 1 – Uso básico


Aqui está um exemplo simples para demonstrar.
EXEC sp_helptrigger 'dbo.t1';

Resultado:
+-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+
| trigger_name      | trigger_owner   | isupdate   | isdelete   | isinsert   | isafter   | isinsteadof   | trigger_schema   |
|-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------|
| t1_insert_trigger | dbo             | 0          | 0          | 1          | 1         | 0             | dbo              |
+-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+

Caso você tenha problemas para rolar para os lados, aqui está o resultado novamente usando a saída vertical:
trigger_name   | t1_insert_trigger
trigger_owner  | dbo
isupdate       | 0
isdelete       | 0
isinsert       | 1
isafter        | 1
isinsteadof    | 0
trigger_schema | dbo

Exemplo 2 – Especificar um tipo


Neste exemplo, também especifico o tipo.
EXEC sp_helptrigger 'dbo.t1', 'INSERT';

Resultado (usando saída vertical):
trigger_name   | t1_insert_trigger
trigger_owner  | dbo
isupdate       | 0
isdelete       | 0
isinsert       | 1
isafter        | 1
isinsteadof    | 0
trigger_schema | dbo

Neste caso, houve um gatilho desse tipo.

Aqui está novamente usando um tipo diferente.
EXEC sp_helptrigger 'dbo.t1', 'DELETE';

Resultado:
(0 rows affected)

Neste caso não houve DELETE gatilhos nessa tabela.