Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Gunakan sys.trigger_event_types untuk Mencantumkan Jenis Peristiwa Pemicu di SQL Server

Di SQL Server, Anda dapat menggunakan sys.trigger_event_types untuk mengembalikan semua peristiwa atau grup peristiwa tempat pemicu dapat diaktifkan.

Contoh 1 – Contoh Kecil

Di sini, saya menggunakan TOP() klausa untuk mengembalikan sepuluh baris pertama dari tampilan.

SELECT TOP(10) * FROM sys.trigger_event_types;

Hasil:

+--------+-------------------+---------------+| ketik | type_name | parent_type ||--------+-------------------+---------------|| 21 | CREATE_TABLE | 10018 || 22 | ALTER_TABLE | 10018 || 23 | DROP_TABLE | 10018 || 24 | CREATE_INDEX | 10020 || 25 | ALTER_INDEX | 10020 || 26 | DROP_INDEX | 10020 || 27 | CREATE_STATISTICS | 10021 || 28 | UPDATE_STATISTICS | 10021 || 29 | DROP_STATISTICS | 10021 || 34 | CREATE_SYNONYM | 10022 |+--------+-------------------+---------------+ 

Jika saya memilih semua baris, saya mendapatkan 284 saat menggunakan SQL Server 2017 dan 291 di SQL Server 2019.

Contoh 2 – Mendapatkan Induk

Jika Anda melihat lebih dekat pada hasil sys.trigger_event_types , Anda akan melihat bahwa peristiwa pemicu DDL bersifat hierarkis.

Berikut adalah contoh yang menunjukkan hierarki CREATE_TABLE peristiwa pemicu.

DENGAN event_types(Type, Type_Name, Parent_Type, Level) AS ( SELECT type, type_name, parent_type, 1 AS level FROM sys.trigger_event_types WHERE type_name ='CREATE_TABLE' UNION ALL SELECT tet.type, tet.type_name, tet.parent_type , et.level + 1 AS level FROM event_types AS et GABUNG sys.trigger_event_types AS tet ON et.parent_type =tet.type)SELECT Type, Type_name, Parent_TypeFROM event_typesORDER BY level DESC;

Hasil:

+--------+---------------------------+-------- ------+| Ketik | Type_name | Parent_Type ||--------+----------------------------+---------- -----|| 10001 | DDL_EVENTS | NULL || 10016 | DDL_DATABASE_LEVEL_EVENTS | 10001 || 10017 | DDL_TABLE_VIEW_EVENTS | 10016 || 10018 | DDL_TABLE_EVENTS | 10017 || 21 | CREATE_TABLE | 10018 |+--------+----------------------------+---------- -----+

Kita dapat melihat bahwa DDL_EVENTS berada di bagian atas hierarki, diikuti oleh DDL_DATABASE_LEVEL_EVENTS , dll, hingga kita mencapai CREATE_TABLE .

Cara lain untuk memvisualisasikannya adalah seperti ini:

DDL_EVENTS> DDL_DATABASE_LEVEL_EVENTS> DDL_TABLE_VIEW_EVENTS> DDL_TABLE_EVENTS> CREATE_TABLE

Anda dapat mengganti CREATE_TABLE dalam kueri dengan jenis peristiwa lain untuk melihat hierarkinya.

Lihat juga Kueri yang Mengembalikan Daftar Hierarki Jenis Peristiwa Pemicu di SQL Server untuk mengembalikan daftar hierarki jenis peristiwa pemicu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat memotong tabel karena direferensikan oleh batasan KUNCI ASING - Tutorial SQL Server / TSQL Bagian 70

  2. Cari Tahu apakah Partisi Dikompresi di SQL Server (T-SQL)

  3. Bagaimana cara mengekspor semua data dari tabel ke format sql yang dapat disisipkan?

  4. Bagaimana cara menggunakan alias di klausa where?

  5. Cara Menemukan Tabel yang Mengandung Kolom Tertentu di SQL Server