2011-09-09 19 views
6

क्या संग्रहित प्रक्रियाएं तालिका में प्रविष्टि बनाने का कोई तरीका है। उदाहरण के लिए कहते हैं:संग्रहित प्रक्रिया खोजें जो एक विशिष्ट तालिका में सम्मिलित है

संग्रहित प्रक्रिया एक टेबल एक में सम्मिलित करता है
संग्रहित तालिका A में Proceudre बी आवेषण
संग्रहित तालिका बी में प्रक्रिया सी आवेषण

मैं संग्रहित प्रक्रिया के नाम पर वापस जाने के लिए क्वेरी करना चाहते हैं ए और संग्रहीत प्रक्रिया बी

मुझे अभी यह मिला है, लेकिन यह सब संग्रहीत प्रक्रियाओं को ढूंढता है। मुझे लगता है कि संग्रहित प्रक्रियाओं को ढूंढना एक अच्छा प्रारंभिक बिंदु होगा।

 

select schema_name(schema_id) as [schema], 
     name 
from sys.procedures 
where name like '%Item%' and name like '%Create%' 
 

मैं Microsoft SQL का उपयोग कर रहा 2008

उत्तर

9

आप sys.sql_modules जो सभी procs और विचारों का पाठ होता है खोज कर सकते हैं:

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

आप शब्दों आप के लिए खोज कर सकते हैं के कुछ कर रहे हैं कुछ 'INSERT INTO mytable'

+0

+1 'sys.sql_modules' केवल देखने ** पूरे ** संग्रहीत प्रक्रिया (सिर्फ' NVARCHAR (4000) 'के बजाय) की परिभाषा है, इसलिए इसकी वास्तव में केवल एक ही आपको चाहिए कि है इस मामले में – Lamak

+0

बहुत बढ़िया धन्यवाद। उदाहरण के लिए कहें संग्रहीत प्रक्रिया एन्क्रिप्टेड है। क्या यह फ़ंक्शन अभी भी इसे खोज पाएगा? – user489041

+0

@user - यकीन नहीं है, मैंने कभी कोशिश नहीं की। ऐसा लगता है कि यह नहीं होगा। – JNK

1

आप निम्न क्वेरी का उपयोग क्यों नहीं करते हैं।

select O.name from sysobjects O 
Join Syscomments C 
on O.id=C.id 
Where C.text like '%insert into%Table_name%' 

इस क्वेरी से आप सचमुच उस में एक विशिष्ट पाठ के साथ कुछ भी प्रक्रिया पा सकते हैं।

0

सवाल यह पूछता है कि संग्रहीत प्रक्रिया को कैसे ढूंढें किसी विशिष्ट तालिका में सम्मिलित करता है।

नाम से युक्त संग्रहित प्रक्रियाओं की खोज में कुछ चयनों के लिए तालिका का संदर्भ दिया गया है, तो कुछ झूठी सकारात्मकताओं को वापस ला सकता है।

sys.sql_dependencies बहिष्कृत है लेकिन यहां उपयोगी हो सकता है क्योंकि इसमें is_updated ध्वज शामिल है जो भी 1 पर आवेषण के लिए सेट है।

SELECT QUOTENAME(OBJECT_SCHEMA_NAME(object_id)) + '.' + QUOTENAME(OBJECT_NAME(object_id)) 
FROM sys.sql_dependencies 
WHERE referenced_major_id = OBJECT_ID('YourTable') 
     AND is_updated = 1 
GROUP BY object_id 
संबंधित मुद्दे