Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zwróć typ wyzwalacza DML w tabeli w SQL Server

W programie SQL Server można użyć procedury składowanej sp_helptrigger, aby zwrócić typ lub typy wyzwalaczy DML zdefiniowane w określonej tabeli dla bieżącej bazy danych.

Ta procedura składowana działa tylko z wyzwalaczami DML (nie z wyzwalaczami DDL).

Składnia

Oficjalna składnia wygląda następująco:

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

Jako argument musisz podać nazwę tabeli. Możesz poprzedzić go przedrostkiem @tabname = , ale jest to opcjonalne.

Masz również możliwość określenia typu wyzwalacza. Może to być INSERT , DELETE lub UPDATE .

Przykład 1 – Podstawowe użycie

Oto prosty przykład do zademonstrowania.

EXEC sp_helptrigger 'dbo.t1';

Wynik:

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

Jeśli masz problemy z przewijaniem na boki, oto wynik ponownie przy użyciu wyjścia pionowego:

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

Przykład 2 – Określ typ

W tym przykładzie określam również typ.

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

Wynik (przy użyciu wyjścia pionowego):

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

W tym przypadku był wyzwalacz tego typu.

Tutaj znowu używa innego typu.

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

Wynik:

(0 rows affected)

W tym przypadku nie było opcji DELETE wyzwalacze na tym stole.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Przywracanie bazy danych

  2. sql z geografii do dbgeografii?

  3. Czy jest jakaś różnica między DateTime w c# i DateTime w serwerze SQL?

  4. Jak włączyć usługę MSDTC w programie SQL Server?

  5. Jak określić sortowanie w zapytaniu w SQL Server (T-SQL)