2009-05-28 9 views
8

मैं एक निश्चित पाठ युक्त संग्रहित प्रक्रिया कैसे ढूंढूं? जबकि मैं समझता हूं कि इस प्रकार की खोज करने का सबसे अच्छा स्थान आपके स्रोत नियंत्रण उपकरण के माध्यम से है, लेकिन डेटाबेस में ऐसा करने के तरीके हैं?एसक्यूएल सर्वर 2005 में संग्रहीत प्रक्रियाओं में पाठ खोज

उत्तर

15
SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
    FROM INFORMATION_SCHEMA.ROUTINES 
    WHERE ROUTINE_DEFINITION LIKE '%your text here%' 
    AND ROUTINE_TYPE='PROCEDURE' 
+1

वाह। बहुत उपयोगी। बहुत बहुत धन्यवाद। –

+2

सावधान रहें कि आपके पास लंबी प्रक्रिया होने पर 4000 वर्णों पर routine_definition फसल हो गई है। sys.sql_modules में एक ही समस्या नहीं है। – PeteT

+0

समस्या को हल करने का अज्ञेय तरीका होने के लिए +1 – Jim

2

आप sys.sql_modules खोज सकते हैं। परिभाषा में प्रक्रियाओं का पाठ होता है। दृश्य में प्रक्रियाएं, विचार, udfs इत्यादि शामिल हैं। संग्रहीत प्रक्रियाओं को स्वयं प्रतिबंधित करने के लिए आपको object_id पर sys.procedure से जुड़ना चाहिए।

12
SELECT DISTINCT o.name AS Object_Name,o.type_desc 
FROM sys.sql_modules  m 
INNER JOIN sys.objects o 
    ON m.object_id=o.object_id 
WHERE m.definition Like '%Serach_Text%' 
संबंधित मुद्दे