sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera en DML-utlösartyp på en tabell i SQL Server

I SQL Server kan du använda den lagrade proceduren sp_helptrigger för att returnera typen eller typerna av DML-utlösare som definierats i den angivna tabellen för den aktuella databasen.

Denna lagrade procedur fungerar bara på DML-utlösare (inte DDL-utlösare).

Syntax

Den officiella syntaxen ser ut så här:

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

Du måste ange tabellnamnet som ett argument. Du kan prefix det med @tabname = , men detta är valfritt.

Du har också möjlighet att ange en triggertyp. Detta kan vara antingen INSERT , DELETE , eller UPDATE .

Exempel 1 – Grundläggande användning

Här är ett enkelt exempel att visa.

EXEC sp_helptrigger 'dbo.t1';

Resultat:

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

Om du har problem med att rulla i sidled, här är resultatet igen med vertikal utmatning:

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

Exempel 2 – Ange en typ

I det här exemplet anger jag också typen.

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

Resultat (med vertikal utdata):

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

I det här fallet fanns det en trigger av den typen.

Här använder den återigen en annan typ.

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

Resultat:

(0 rows affected)

I det här fallet fanns det ingen DELETE utlösare på det bordet.


  1. array_agg för matristyper

  2. Försök att öppna ett redan stängt objekt sqlitedatabase

  3. Vad ska man göra om det inte går att öppna fil med delade objekt när man använder OCI-versionen av Easysoft Oracle ODBC-drivrutinen?

  4. Kontrollera överlappning av datumintervall i MySQL