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

Sådan returneres en liste over triggerhændelser i SQL Server

Du kan bruge T-SQL til at returnere en liste over triggerhændelser i en database i SQL Server.

Du kan gøre dette ved at bruge sys.trigger_events . Denne systemkatalogvisning returnerer en række for hver hændelse eller hændelsesgruppe, hvorpå en trigger kan udløses.

Eksempel 1 – Grundlæggende brug

Her er et eksempel til at demonstrere.

USE Test;SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_descFROM sys.trigger_events;

Resultat:

+-------------+--------------------+------------ -+| objekt-id | Triggernavn | type_desc ||-------------+--------------------+---------------- || 286624064 | t1_insert_trigger | INDSÆT || 2034106287 | t6ins | INDSÆT |+-------------+---------------------+---------------- +

I dette tilfælde bruger jeg OBJECT_NAME() funktion for at hente hver triggers navn fra dens object_id .

Eksempel 2 – Indsnævre det til en specifik trigger

Du kan også bruge OBJECT_NAME() at filtrere resultaterne til et specifikt udløsernavn ved hjælp af en WHERE klausul.

SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_descFROM sys.trigger_eventsWHERE OBJECT_NAME(object_id) ='t1_insert_trigger';

Resultat:

+-------------+--------------------+------------ -+| objekt-id | Triggernavn | type_desc ||-------------+--------------------+---------------- || 286624064 | t1_insert_trigger | INDSÆT |+-------------+---------------------+---------------- +

Eksempel 3 – Returner alle kolonner

Dette eksempel returnerer alle kolonner fra denne visning.

SELECT * FROM sys.trigger_eventsWHERE OBJECT_NAME(object_id) ='t1_insert_trigger';

Resultat (ved hjælp af lodret output):

objekt_id | 286624064type | 1type_desc | INSERTis_first | 0is_sidste | 0begivenhedsgruppetype | NULLevent_group_type_desc | NULLis_trigger_event | 1

I dette eksempel præsenterede jeg resultaterne ved hjælp af lodret output, så du ikke tvinges til at rulle vandret.

Hent alle triggerhændelsestyper

Du kan forespørge i sys.trigger_event_types-katalogvisningen for at få en liste over alle triggerhændelsestyper. Dette er de begivenheder eller begivenhedsgrupper, som en trigger kan udløses på.

Du kan også køre en forespørgsel, der viser dem hierarkisk.


  1. Sådan fungerer REGEXP_LIKE()-funktionen i MySQL

  2. Sådan fungerer make_time() i PostgreSQL

  3. Top Facebook-grupper til Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science

  4. MySQL fejl 1241:Operand skal indeholde 1 kolonne(r)