sql >> Database >  >> RDS >> Sqlserver

Retourneer een DML-triggertype op een tabel in SQL Server

In SQL Server kunt u de opgeslagen procedure sp_helptrigger gebruiken om het type of de typen DML-triggers te retourneren die zijn gedefinieerd in de opgegeven tabel voor de huidige database.

Deze opgeslagen procedure werkt alleen op DML-triggers (niet op DDL-triggers).

Syntaxis

De officiële syntaxis gaat als volgt:

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

U moet de tabelnaam als argument opgeven. Je kunt het voorvoegsel geven met @tabname = , maar dit is optioneel.

U heeft ook de mogelijkheid om een ​​triggertype op te geven. Dit kan ofwel INSERT . zijn , DELETE , of UPDATE .

Voorbeeld 1 – Basisgebruik

Hier is een eenvoudig voorbeeld om te demonstreren.

EXEC sp_helptrigger 'dbo.t1';

Resultaat:

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

Als je problemen hebt met zijwaarts scrollen, hier is het resultaat opnieuw met verticale uitvoer:

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

Voorbeeld 2 – Specificeer een type

In dit voorbeeld geef ik ook het type op.

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

Resultaat (met verticale uitvoer):

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

In dit geval was er een trigger van dat type.

Hier wordt weer een ander type gebruikt.

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

Resultaat:

(0 rows affected)

In dit geval waren er geen DELETE triggers op die tafel.


  1. Haal de laatste datum uit gegroepeerde MySQL-gegevens

  2. Werken met Java-gegevens in Qlik Sense

  3. Update SQL met opeenvolgende nummering

  4. SQL Server Process Queue Race Conditie