Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्वेरी जो SQL सर्वर में ट्रिगर इवेंट प्रकारों की एक श्रेणीबद्ध सूची लौटाती है

SQL सर्वर में, आप ट्रिगर इवेंट प्रकारों की एक श्रेणीबद्ध सूची वापस करने के लिए निम्न T-SQL क्वेरी का उपयोग कर सकते हैं।

ये उदाहरण sys.trigger_event_types . को क्वेरी करते हैं दृश्य, जो प्रत्येक ईवेंट या ईवेंट समूह के लिए एक पंक्ति देता है जिस पर ट्रिगर सक्रिय हो सकता है।

उदाहरण 1 - सभी पंक्तियां लौटाएं

यह क्वेरी sys.trigger_event_types . में सभी पंक्तियां लौटाती है देखें।

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;

वह क्वेरी मेरे SQL Server 2017 परिवेश में 284 पंक्तियाँ और मेरे SQL Server 2019 परिवेश में 291 पंक्तियाँ लौटाती है।

उदाहरण 2 - एकल ईवेंट प्रकार लौटाएं

आप पिछली क्वेरी को संशोधित कर सकते हैं ताकि वह ब्रेडक्रंब शैली में सूचीबद्ध एक विशिष्ट ईवेंट प्रकार लौटाए।

यहां CREATE_TABLE लौटाने का एक उदाहरण दिया गया है ब्रेडक्रंब शैली में घटना प्रकार:

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';

परिणाम:

+--------------------------------------------------------------------------------------------------+
| Result                                                                                           |
|--------------------------------------------------------------------------------------------------|
| DDL_EVENTS > DDL_DATABASE_LEVEL_EVENTS > DDL_TABLE_VIEW_EVENTS > DDL_TABLE_EVENTS > CREATE_TABLE |
+--------------------------------------------------------------------------------------------------+

  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 सर्वर उच्च उपलब्धता:मौजूदा फ़ेलओवर क्लस्टर इंस्टेंस में नई डिस्क जोड़ें

  2. SQL सर्वर 2017 में एक डेटाबेस का बैकअप लें

  3. केस संवेदनशील से असंवेदनशील मामले में SQL सर्वर संयोजन को बदलना?

  4. एक चर को एक ट्रिगर में पास करें

  5. SQL सर्वर में INSERT INTO SELECT क्वेरी में डुप्लिकेट से बचें