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 सर्वर में ट्रिगर इवेंट प्रकारों की एक पदानुक्रमित सूची देता है।