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.