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

टी-एसक्यूएल:टेबल से संबंधित संग्रहित प्रक्रियाओं को चक्रीय रूप से दिखाएं

यह दोनों तालिकाओं और संग्रहीत कार्यविधियों के लिए सूचना स्कीमा का उपयोग करता है। आप फ़ंक्शन जोड़ने के लिए ROUTINE_TYPE शर्त को बदल सकते हैं या उससे छुटकारा पा सकते हैं, और आप तालिका प्रकार को वापस देखने के लिए बदल सकते हैं।

यह उत्तर यह जांच कर अपने परिणाम उत्पन्न करता है कि संग्रहीत प्रक्रिया किस तालिका पर निर्भर करती है। मुझे लगता है कि यह एक और अधिक सटीक परिणाम होगा, फिर जांच कर रहा है कि कोई नाम क्वेरी टेक्स्ट में है या नहीं। यदि प्रक्रिया एक टिप्पणी अनुभाग में एक तालिका को संदर्भित करती है, तो यह परिणाम पहली क्वेरी में नहीं लौटाया जाएगा, बल्कि दूसरे और दिए गए अन्य उत्तरों में होगा।

SELECT t.TABLE_NAME, s.ROUTINE_NAME
FROM INFORMATION_SCHEMA.TABLES t
INNER JOIN INFORMATION_SCHEMA.ROUTINES s ON
    s.ROUTINE_NAME IN (SELECT referencing_entity_name 
        FROM sys.dm_sql_referencing_entities(TABLE_SCHEMA + '.' + TABLE_NAME, 'OBJECT'))
    AND s.ROUTINE_TYPE = 'PROCEDURE'
WHERE t.TABLE_TYPE = 'BASE TABLE'

संपादित करें :यहां बताया गया है कि फ़ंक्शन के बिना निर्भरता कैसे प्राप्त करें। (मुझे यह तरीका सबसे अच्छा लगता है)

SELECT DISTINCT t.name [TableName], p.name [ProcedureName]
FROM sys.objects t 
LEFT JOIN sys.sql_dependencies d ON
    d.referenced_major_id = t.object_id
LEFT JOIN sys.objects p ON
    p.object_id = d.object_id
    AND p.type = 'p'
WHERE t.type = 'u'

यदि आपका विशिष्ट उपयोग किसी तालिका के नाम से मेल खाने वाली स्ट्रिंग को खोजने के लिए है, तो नीचे काम करेगा:

SELECT t.TABLE_NAME, s.ROUTINE_NAME 
FROM INFORMATION_SCHEMA.TABLES t
INNER JOIN INFORMATION_SCHEMA.ROUTINES s 
    ON CHARINDEX(t.TABLE_NAME, s.ROUTINE_DEFINITION) > 0
    AND s.ROUTINE_TYPE = 'PROCEDURE'
WHERE t.TABLE_TYPE = 'BASE 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 सर्वर (T-SQL) में डेटाबेस मेल प्रोफ़ाइल को अपडेट करते समय "प्रोफ़ाइल नाम मान्य नहीं है" को कैसे ठीक करें

  2. MS SQL सर्वर में 24/7 IS डेटाबेस का शेड्यूल्ड रखरखाव

  3. रिफैक्टरिंग ADO.NET - SqlTransaction बनाम TransactionScope

  4. SQL सर्वर में एक रिकॉर्डसेट पर लूपिंग

  5. फ्लैट फ़ाइल में डेटा निर्यात करने वाला SSIS दोहरे उद्धरण चिह्नों को हेक्साडेसिमल वर्णों के रूप में प्रस्तुत करता है