2010-03-26 14 views
15

का उपयोग कर संग्रहित प्रक्रियाओं की फ़िल्टर की गई सूची को पुनर्प्राप्त करना मैं टी-एसक्यूएल में संग्रहीत प्रक्रियाओं की एक सूची प्राप्त करने का प्रयास कर रहा हूं। मैं लाइन का उपयोग कर रहा हूं:टी-एसक्यूएल

exec sys.sp_stored_procedures; 

मैं परिणामों को फिर से फ़िल्टर करना चाहता हूं, इसलिए मुझे केवल उपयोगकर्ता संग्रहित प्रक्रियाएं मिलती हैं। मैं sp_ *, dt_ *, fn_ *, xp_ * और अन्य सभी को फ़िल्टर करना चाहता हूं जो एक सिस्टम संग्रहीत प्रक्रिया है और मुझे कोई रूचि नहीं है। मैं परिणाम सेट को कैसे बदल सकता हूं?

एसक्यूएल सर्वर 2008 एक्सप्रेस का उपयोग करना।

हल हो गया! यहाँ मैं क्या प्रयोग किया जाता है: sysobjects table से

SELECT name FROM sys.procedures 
WHERE [type] = 'P' 
AND name NOT LIKE 'sp_%' 
AND name NOT LIKE 'dt_%' 
ORDER BY name ASC; 
+0

इस सवाल का शीर्षक समाधान से मेल नहीं खाता, शीर्षक हो सकता है 'संग्रहित प्रक्रियाओं को कैसे सूचीबद्ध करें' में संपादित किया गया है? –

+0

मैं सहमत हूं, शीर्षक भयानक था। मैंने इसे अपडेट किया है। – DanDan

उत्तर

15

बल्कि का उपयोग कर संग्रहित प्रक्रिया आप निम्नलिखित दृश्यों का उपयोग कर सकते हैं की तुलना में:

Select * From sys.procedures 
Where [Type] = 'P' 

या

Select * From Information_Schema.Routines 
+0

धन्यवाद! मैं अपने समाधान में पूर्ण समाधान वापस रखूंगा। – DanDan

2

आइटम का चयन करें और संग्रहित प्रक्रियाओं और name पर फ़िल्टर के लिए एक जहां खंड type = 'P' का उपयोग करें।

1
SELECT [Routine_Name] 
FROM [INFORMATION_SCHEMA].[ROUTINES] 
WHERE [ROUTINE_TYPE] = 'PROCEDURE' 
संबंधित मुद्दे