Di SQL Server, Anda dapat menggunakan kueri T-SQL berikut untuk mengembalikan daftar hierarkis jenis peristiwa pemicu.
Contoh-contoh ini menanyakan sys.trigger_event_types view, yang mengembalikan baris untuk setiap peristiwa atau grup peristiwa tempat pemicu dapat diaktifkan.
Contoh 1 – Kembalikan Semua Baris
Kueri ini mengembalikan semua baris di sys.trigger_event_types lihat.
WITH event_types(Type, Type_Name, Parent_Type, Level, Sort) AS
(
SELECT
tet.type,
tet.type_name,
tet.parent_type,
1 AS Level,
CONVERT(nvarchar(255), tet.type_name)
FROM sys.trigger_event_types tet
WHERE parent_type IS NULL
UNION ALL
SELECT tet.type,
CONVERT(nvarchar(64), REPLICATE('| ' , Level) + tet.type_name),
tet.parent_type,
Level + 1,
CONVERT(nvarchar(255), RTRIM(Sort) + ' > ' + tet.type_name)
FROM sys.trigger_event_types AS tet
INNER JOIN event_types AS et
ON et.type = tet.parent_type
)
SELECT Type_Name
FROM event_types
ORDER BY Sort;
Kueri tersebut mengembalikan 284 baris di lingkungan SQL Server 2017 saya dan 291 baris di lingkungan SQL Server 2019 saya.
Contoh 2 – Mengembalikan Jenis Peristiwa Tunggal
Anda dapat mengubah kueri sebelumnya sehingga menghasilkan jenis peristiwa tertentu, yang tercantum dalam gaya breadcrumb.
Berikut adalah contoh mengembalikan CREATE_TABLE jenis acara dalam gaya remah roti:
WITH event_types(Type, Type_Name, Parent_Type, Level, Sort) AS
(
SELECT
tet.type,
tet.type_name,
tet.parent_type,
1 AS Level,
CONVERT(nvarchar(255), tet.type_name)
FROM sys.trigger_event_types tet
WHERE parent_type IS NULL
UNION ALL
SELECT tet.type,
CONVERT(nvarchar(64), REPLICATE('| ' , Level) + tet.type_name),
tet.parent_type,
Level + 1,
CONVERT(nvarchar(255), RTRIM(Sort) + ' > ' + tet.type_name)
FROM sys.trigger_event_types AS tet
INNER JOIN event_types AS et
ON et.type = tet.parent_type
)
SELECT Sort AS [Result]
FROM event_types
WHERE RIGHT(Sort, 12) = 'CREATE_TABLE';
Hasil:
+--------------------------------------------------------------------------------------------------+ | Result | |--------------------------------------------------------------------------------------------------| | DDL_EVENTS > DDL_DATABASE_LEVEL_EVENTS > DDL_TABLE_VIEW_EVENTS > DDL_TABLE_EVENTS > CREATE_TABLE | +--------------------------------------------------------------------------------------------------+