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

T-SQL का उपयोग करके SQL सर्वर डेटाबेस में ट्रिगर की सूची वापस करने के 2 तरीके

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

विकल्प 1 - sys.triggers कैटलॉग व्यू

आप sys.triggers . का उपयोग कर सकते हैं डेटाबेस में सभी ट्रिगर्स की सूची प्राप्त करने के लिए सिस्टम कैटलॉग व्यू।

USE Test;
SELECT 
  name,
  OBJECT_NAME(parent_id) AS parent,
  type,
  type_desc
FROM sys.triggers;

परिणाम:

+-------------------+----------+--------+-------------+
| name              | parent   | type   | type_desc   |
|-------------------+----------+--------+-------------|
| t1_insert_trigger | t1       | TR     | SQL_TRIGGER |
| t6ins             | t6       | TR     | SQL_TRIGGER |
+-------------------+----------+--------+-------------+

यह दृश्य एक प्रकार के TR (SQL DML ट्रिगर) या TA (असेंबली (CLR) DML ट्रिगर) के साथ सभी ट्रिगर लौटाता है। यह डीएमएल ट्रिगर नाम और डीडीएल ट्रिगर नाम दोनों देता है (अगले विकल्प के विपरीत, जो केवल डीएमएल ट्रिगर देता है)।

विकल्प 2 - sys.objects कैटलॉग व्यू

आप sys.objects . का भी उपयोग कर सकते हैं ट्रिगर्स की सूची प्राप्त करने के लिए सिस्टम कैटलॉग दृश्य।

USE Test;
SELECT
  SCHEMA_NAME(schema_id) AS [schema],
  name,
  OBJECT_NAME(parent_object_id) AS parent,
  type,
  type_desc
FROM sys.objects
WHERE type IN ('TR', 'TA');

परिणाम:

+----------+-------------------+----------+--------+-------------+
| schema   | name              | parent   | type   | type_desc   |
|----------+-------------------+----------+--------+-------------|
| dbo      | t1_insert_trigger | t1       | TR     | SQL_TRIGGER |
| dbo      | t6ins             | t6       | TR     | SQL_TRIGGER |
+----------+-------------------+----------+--------+-------------+

ध्यान दें कि sys.objects केवल डीएमएल ट्रिगर्स को सूचीबद्ध करता है न कि डीडीएल ट्रिगर्स को।

ऐसा इसलिए है क्योंकि sys.objects केवल स्कीमा-स्कोप्ड ऑब्जेक्ट देता है। डीएमएल ट्रिगर नाम स्कीमा-स्कोप्ड हैं लेकिन डीडीएल ट्रिगर नाम मूल इकाई द्वारा स्कोप किए गए हैं। यदि आपको डीडीएल ट्रिगर वापस करने की आवश्यकता है, तो sys.triggers . का उपयोग करें ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSMS परिणाम ग्रिड के लिए - CRLF कॉपी/पेस्ट में संरक्षित नहीं - कोई बेहतर तकनीक?

  2. SQL सर्वर में APPROX_COUNT_DISTINCT () कैसे काम करता है

  3. SQL में VARCHAR पर CHAR का चयन करने के लिए उपयोग के मामले क्या हैं?

  4. SQL सर्वर (T-SQL) में कॉलम का आकार कैसे बदलें

  5. SQL सर्वर में IN लॉजिकल ऑपरेटर क्या है - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 122