Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Restituisce un tipo di trigger DML su una tabella in SQL Server

In SQL Server è possibile utilizzare la stored procedure sp_helptrigger per restituire il tipo o i tipi di trigger DML definiti nella tabella specificata per il database corrente.

Questa procedura memorizzata funziona solo su trigger DML (non trigger DDL).

Sintassi

La sintassi ufficiale è questa:

sp_helptrigger [ @tabname = ] 'table'   
     [ , [ @triggertype = ] 'type' ]

È necessario fornire il nome della tabella come argomento. Puoi anteporre @tabname = , ma questo è facoltativo.

Hai anche la possibilità di specificare un tipo di trigger. Può essere INSERT , DELETE o UPDATE .

Esempio 1 – Utilizzo di base

Ecco un semplice esempio da dimostrare.

EXEC sp_helptrigger 'dbo.t1';

Risultato:

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

Nel caso in cui tu abbia problemi a scorrere lateralmente, ecco di nuovo il risultato utilizzando l'output verticale:

trigger_name   | t1_insert_trigger
trigger_owner  | dbo
isupdate       | 0
isdelete       | 0
isinsert       | 1
isafter        | 1
isinsteadof    | 0
trigger_schema | dbo

Esempio 2:specificare un tipo

In questo esempio specifico anche il tipo.

EXEC sp_helptrigger 'dbo.t1', 'INSERT';

Risultato (usando l'output verticale):

trigger_name   | t1_insert_trigger
trigger_owner  | dbo
isupdate       | 0
isdelete       | 0
isinsert       | 1
isafter        | 1
isinsteadof    | 0
trigger_schema | dbo

In questo caso, c'era un trigger di quel tipo.

Eccolo di nuovo utilizzando un tipo diverso.

EXEC sp_helptrigger 'dbo.t1', 'DELETE';

Risultato:

(0 rows affected)

In questo caso non c'erano DELETE trigger su quel tavolo.