sql - कुछ संग्रहीत प्रक्रियाओं को खोजें जो कुछ तालिका में एक विशिष्ट कॉलम का संदर्भ देते हैं




sql-server select (6)

आप मानों की पहचान करने के लिए नीचे दी गई क्वेरी का उपयोग कर सकते हैं। लेकिन कृपया ध्यान रखें कि यह आपको एन्क्रिप्टेड संग्रहीत प्रक्रिया से परिणाम नहीं देगा।

SELECT DISTINCT OBJECT_NAME(comments.id) OBJECT_NAME
    ,objects.type_desc
FROM syscomments comments
    ,sys.objects objects
WHERE comments.id = objects.object_id
    AND TEXT LIKE '%CreatedDate%'
ORDER BY 1

मेरे पास एक टेबल में एक मान है जो अप्रत्याशित रूप से बदला गया था। प्रश्न में कॉलम बनाया गया CreatedDate : यह सेट है जब मेरा आइटम बनाया गया है, लेकिन इसे संग्रहीत प्रक्रिया द्वारा बदला जा रहा है।

क्या मैं अपनी तालिका से इस कॉलम का संदर्भ देने वाले सभी प्रक्रिया नाम प्राप्त करने के लिए कुछ प्रकार का SELECT कथन लिख सकता हूं?


आप ApexSQL खोज का उपयोग कर सकते हैं, यह एक नि: शुल्क एसएसएमएस और विजुअल स्टूडियो एड-इन है और यह एक विशिष्ट तालिका कॉलम का संदर्भ देने वाली सभी ऑब्जेक्ट्स को सूचीबद्ध कर सकता है। यह टेबल और विचारों में संग्रहीत डेटा भी पा सकता है। आप कॉलम का संदर्भ देने वाले विशिष्ट डेटाबेस ऑब्जेक्ट प्रकार को दिखाने के लिए परिणामों को आसानी से फ़िल्टर कर सकते हैं

अस्वीकरण: मैं एक सहायक अभियंता के रूप में ApexSQL के लिए काम करता हूं


इसे इस्तेमाल करे..

SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%CreatedDate%'
GO

या आप सभी प्रक्रियाओं की एक स्क्रिप्ट उत्पन्न कर सकते हैं और वहां से खोज सकते हैं।


एक विकल्प एक स्क्रिप्ट फ़ाइल बनाना है।

डेटाबेस पर राइट क्लिक करें -> कार्य -> ​​स्क्रिप्ट जेनरेट करें

फिर आप सभी संग्रहीत प्रक्रियाओं का चयन कर सकते हैं और सभी एसपीएस के साथ स्क्रिप्ट उत्पन्न कर सकते हैं। तो आप वहां से संदर्भ पा सकते हैं।

या

-- Search in All Objects
SELECT OBJECT_NAME(OBJECT_ID),
definition
FROM sys.sql_modules
WHERE definition LIKE '%' + 'CreatedDate' + '%'
GO

-- Search in Stored Procedure Only
SELECT DISTINCT OBJECT_NAME(OBJECT_ID),
object_definition(OBJECT_ID)
FROM sys.Procedures
WHERE object_definition(OBJECT_ID) LIKE '%' + 'CreatedDate' + '%'
GO

स्रोत एसक्यूएल सर्वर - संग्रहित प्रक्रिया में प्रयुक्त कॉलम खोजें - कॉलम नाम के लिए संग्रहीत प्रक्रिया खोजें


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

SELECT DISTINCT Name
FROM sys.Procedures
WHERE object_definition(OBJECT_ID) LIKE '%CreatedDate%';

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

SELECT DISTINCT Name 
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%tbl_name%'
AND OBJECT_DEFINITION(OBJECT_ID) LIKE '%CreatedDate%';

SELECT *
FROM   sys.all_sql_modules
WHERE  definition LIKE '%CreatedDate%'




columnname