sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man returnerar en lista över triggerhändelser i SQL Server

Du kan använda T-SQL för att returnera en lista över triggerhändelser i en databas i SQL Server.

Du kan göra detta med sys.trigger_events . Denna systemkatalogvy returnerar en rad för varje händelse eller händelsegrupp som en utlösare kan aktiveras på.

Exempel 1 – Grundläggande användning

Här är ett exempel att visa.

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

Resultat:

+-------------+-------------------+-------------+
| object_id   | Trigger Name      | type_desc   |
|-------------+-------------------+-------------|
| 286624064   | t1_insert_trigger | INSERT      |
| 2034106287  | t6ins             | INSERT      |
+-------------+-------------------+-------------+

I det här fallet använder jag OBJECT_NAME() funktion för att hämta varje triggers namn från dess object_id .

Exempel 2 – Begränsa den till en specifik trigger

Du kan också använda OBJECT_NAME() för att filtrera resultaten till ett specifikt triggernamn med en WHERE klausul.

SELECT 
  object_id,
  OBJECT_NAME(object_id) AS [Trigger Name],
  type_desc
FROM sys.trigger_events
WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';

Resultat:

+-------------+-------------------+-------------+
| object_id   | Trigger Name      | type_desc   |
|-------------+-------------------+-------------|
| 286624064   | t1_insert_trigger | INSERT      |
+-------------+-------------------+-------------+

Exempel 3 – Returnera alla kolumner

Det här exemplet returnerar alla kolumner från den här vyn.

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

Resultat (med vertikal utdata):

object_id             | 286624064
type                  | 1
type_desc             | INSERT
is_first              | 0
is_last               | 0
event_group_type      | NULL
event_group_type_desc | NULL
is_trigger_event      | 1

I det här exemplet presenterade jag resultaten med vertikal utdata så att du inte tvingas rulla horisontellt.

Hämta alla triggerhändelsetyper

Du kan fråga katalogvyn sys.trigger_event_types för att få en lista över alla triggerhändelsetyper. Det här är de händelser eller händelsegrupper som en utlösare kan aktiveras på.

Du kan också köra en fråga som listar dem hierarkiskt.


  1. Hantera felhantering när du kör sqlplus från skalskript

  2. ORA-01843 inte en giltig månad- Jämför datum

  3. Problem med att öppna MDF-fil eftersom det står SQL-fel 5171? - Ett gästinlägg av Andre Williams

  4. Översikt över DBCC CheckDB-funktion