SQL सर्वर में, आप sys.trigger_event_types . का उपयोग कर सकते हैं उन सभी ईवेंट या ईवेंट समूहों को वापस करने के लिए जिन पर ट्रिगर सक्रिय हो सकता है।
उदाहरण 1 - एक छोटा सा नमूना
यहां, मैं TOP() का उपयोग करता हूं दृश्य से पहली दस पंक्तियों को वापस करने के लिए खंड।
SELECT TOP(10) * FROM sys.trigger_event_types;
परिणाम:
+--------+-------------------+---------------+ | type | 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 | +--------+-------------------+---------------+
यदि मैं सभी पंक्तियों का चयन करता हूं, तो SQL सर्वर 2017 में 284 और SQL सर्वर 2019 में 291 का उपयोग करते समय मुझे 284 मिलते हैं।
उदाहरण 2 - जनक प्राप्त करना
यदि आप sys.trigger_event_types . के परिणामों को करीब से देखें तो , आप देखेंगे कि डीडीएल ट्रिगर इवेंट पदानुक्रमित हैं।
यहां एक उदाहरण दिया गया है जो CREATE_TABLE . के पदानुक्रम को दर्शाता है ट्रिगर घटना।
WITH 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
JOIN sys.trigger_event_types AS tet
ON et.parent_type = tet.type
)
SELECT
Type,
Type_name,
Parent_Type
FROM event_types
ORDER BY level DESC;
परिणाम:
+--------+---------------------------+---------------+ | Type | 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 | +--------+---------------------------+---------------+
हम देख सकते हैं कि DDL_EVENTS पदानुक्रम के शीर्ष पर है, उसके बाद DDL_DATABASE_LEVEL_EVENTS है , आदि, जब तक हम CREATE_TABLE . तक नहीं पहुंच जाते ।
इसकी कल्पना करने का दूसरा तरीका इस प्रकार है:
DDL_EVENTS > DDL_DATABASE_LEVEL_EVENTS > DDL_TABLE_VIEW_EVENTS > DDL_TABLE_EVENTS > CREATE_TABLE
आप CREATE_TABLE . को बदल सकते हैं किसी अन्य प्रकार के ईवेंट के साथ क्वेरी में उसका पदानुक्रम देखने के लिए।
यह भी देखें कि ट्रिगर इवेंट प्रकारों की एक पदानुक्रमित सूची वापस करने के लिए SQL सर्वर में ट्रिगर इवेंट प्रकारों की एक पदानुक्रमित सूची देता है।