2011-03-23 15 views
33

में सभी संग्रहीत प्रोसेस को खोजकर एक स्ट्रिंग खोजें SQL सर्वर प्रबंधन स्टूडियो में सभी संग्रहीत प्रोसेस के भीतर स्ट्रिंग को खोजने का कोई तरीका है?SQL सर्वर प्रबंधन स्टूडियो 2008

उत्तर

57
SELECT * 
FROM sys.sql_modules 
WHERE definition LIKE '%yourstring%' 
+3

+1: धन्यवाद, अब मैं सोच रहा हूं कि मुझे अपने उत्तर में यह जोड़ना चाहिए कि 'sys.sql_modules' एकमात्र ऐसा दृश्य है जिसमें परिभाषा' NVARCHAR (MAX) 'के रूप में परिभाषा है 'NVARCHAR (4000)' – gbn

+2

@gbn का उपयोग न करने के लिए – Lamak

+12

संग्रहीत प्रक्रिया का नाम भी प्राप्त करने के लिए: SELECT p.name, m। * sys.sql_modules से IN INER जॉइन sys.procedures p m.object_id = p.object_id पर परिभाषा कहां ' % SEARCHSTRING% ' – flash

19

RedGate's SQL Search पर एक नज़र डालें। यह एक प्रबंधन स्टूडियो प्लगइन और एक मुफ्त डाउनलोड है। आप किसी दिए गए डेटाबेस या पूरे उदाहरण में खोज सकते हैं।

+3

+1 उत्कृष्ट ऐड-इन! और सबसे अच्छा: ** यह पूरी तरह से मुफ़्त है !! ** –

+0

कोड विकल्प के लिए एक बेहतर समाधान - धन्यवाद !! INFORMATION_SCHEMA और syscomments – Cheeky

14

मैं हमेशा इसका उपयोग करता हूं;

SELECT Name 
FROM sys.procedures 
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%SEARCHSTRING%' 
3

मेरे मामले में, जब भी मैं किसी विशिष्ट टेक्स्ट या कीवर्ड की खोज करता हूं तो मैं स्कीमा और संग्रहीत प्रक्रिया का नाम प्राप्त करने के लिए देख रहा था। कोड मैं का उपयोग करें और यह मेरे लिए काम कर रहा है:

USE [your_DB_name]; 
GO 
SELECT [Scehma]=schema_name(o.schema_id), o.Name 
FROM sys.sql_modules m 
INNER JOIN sys.objects o 
ON o.object_id = m.object_id 
WHERE m.definition like '%your keyword%' 
GO 

परिणाम सरल है और इस प्रकार है:

---------------------------------------------- 
| Schema | Name      | 
---------------------------------------------- 
| dbo  | stored_procedure_name  | 
---------------------------------------------- 
... 
and so on (if the keyword exists in more than one stored procedure) 
संबंधित मुद्दे