2011-01-27 17 views
5

में टेक्स्ट खोज क्या कोई भी SQL सर्वर में टेक्स्ट खोज के लिए उपयोग करने के लिए स्क्रिप्ट को जानता है? मैं SQL सर्वर के अंदर सभी संग्रहीत प्रो से एक टेक्स्ट खोजना चाहता हूं, क्या किसी को पता है कि मुझे किस स्क्रिप्ट का उपयोग करना चाहिए?संग्रहित प्रो SQL सर्वर

उत्तर

10

INFORMATION_SCHEMA.ROUTINES या syscomments विश्वसनीय नहीं हैं।

टेक्स्ट फ़ील्ड दोनों के लिए nvarchar (4000) है (केवल एकाधिक पंक्तियों के सिमुलेशन पर)। तो आपके खोज लेख एक syscomments के लिए सीमा पर खो दिया जा सकता है या INFORMATION_SCHEMA.ROUTINES

sys.sql_modules.definition के लिए कभी नहीं मिली है nvarchar (अधिकतम)

SELECT 
    OBJECT_NAME(object_id) 
FROM 
    sys.sql_modules 
WHERE 
    definition LIKE '%mytext%' 

संपादित करें, अक्टूबर 2011

अप करने के लिए इस उत्तर लाना है तारीख।

Red Gate SQL Searchमुफ्त एसएसएमएस प्लग इसमें काफी उपयोगी है।

+1

+1 thx, मैंने फिर से कुछ नया सीखा। 'Sys.syscomments' के उपयोग को हतोत्साहित करने के लिए –

+0

+1। [यह] (https://visakhm.blogspot.in/2012/03/advantages-of-using-syssqlmodules-view.html) ब्लॉग विवरण कुछ और कारण बताते हैं कि हमें 'sys.sql_modules' का उपयोग क्यों करना चाहिए। – RBT

2

अपडेटेडः कई समकक्ष तरीके हैं। यहाँ एक है:

SELECT 
    OBJECT_NAME(object_id) 
FROM 
    sys.sql_modules 
WHERE 
    Definition LIKE '%searchtext%' 
    AND OBJECTPROPERTY(object_id, 'IsProcedure') = 1 
+0

-1 इसका कारण यह है कि यह काम नहीं हो सकता है sys.sql_modules या OBJECT_DEFINITION के बराबर नहीं है ... ROUTINE_DEFINITION जबकि proc कोड – gbn

+0

downvote.Updated –

+0

@Mitch गेहूं के लिए THX नहीं हो सकता है: यह था * गलत * जब मैंने पोस्ट किया: आपने इसे ठीक करने के लिए अभी संपादित किया है। आपने मेरे * सही * उत्तर को वोट दिया है ... – gbn

1

साथ ही आप का उपयोग कर सकते हैं:

select distinct object_name(id) from sys.syscomments where text like '%SearchTextHere%' 
+0

उल्लेख किए गए कई कारणों के कारण 'sys.syscomments' की तुलना में' sys.sql_modules' का उपयोग करना बेहतर है [https://visakhm.blogspot.in/2012/03/advantages के- का उपयोग कर-syssqlmodules-view.html)। परिभाषा पाठ की लंबाई 4000 वर्णों से अधिक है, तो 'sys.syscomments' एकाधिक पंक्तियों पर संग्रहीत प्रक्रिया की परिभाषा को तोड़ देता है। – RBT

0

आप संग्रहित प्रक्रियाओं के लिए खुद के माध्यम से पाठ के लिए खोज के लिए इच्छुक रहे हैं?

या तालिका डेटा?

यदि तालिका डेटा, LIKE के बारे में कैसे?

संबंधित मुद्दे