Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर डेटाबेस में सभी संग्रहीत कार्यविधियों को सूचीबद्ध करने के 3 तरीके

यह आलेख SQL सर्वर डेटाबेस में संग्रहीत कार्यविधियों की सूची वापस करने के दो तरीके प्रस्तुत करता है।

विकल्प 1 - रूटीन सूचना स्कीमा दृश्य

आप ROUTINES का उपयोग कर सकते हैं डेटाबेस में सभी उपयोगकर्ता-परिभाषित संग्रहीत कार्यविधियों की सूची प्राप्त करने के लिए सूचना स्कीमा दृश्य।

USE Music;
SELECT 
  ROUTINE_SCHEMA,
  ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE';

परिणाम:

+------------------+----------------------+
| ROUTINE_SCHEMA   | ROUTINE_NAME         |
|------------------+----------------------|
| dbo              | spAlbumsFromArtist   |
| dbo              | uspGetAlbumsByArtist |
+------------------+----------------------+

प्रक्रिया की परिभाषा लौटाएं

INFORMATION_SCHEMA.ROUTINES दृश्य में एक ROUTINE_DEFINITION भी है कॉलम, ताकि यदि आवश्यक हो तो आप आसानी से प्रत्येक संग्रहीत कार्यविधि की परिभाषा वापस कर सकते हैं।

SELECT ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE';

विकल्प 2 - sys.objects सिस्टम कैटलॉग व्यू

संग्रहीत कार्यविधियों की सूची वापस करने का दूसरा तरीका sys.objects . को क्वेरी करना है सिस्टम कैटलॉग व्यू।

SELECT 
  SCHEMA_NAME(schema_id) AS [Schema],
  name
FROM sys.objects
WHERE type = 'P';

परिणाम:

+----------+----------------------+
| Schema   | name                 |
|----------+----------------------|
| dbo      | spAlbumsFromArtist   |
| dbo      | uspGetAlbumsByArtist |
+----------+----------------------+

टाइप P "प्रक्रिया" के लिए अनुमानित है।

ऐसा करने का दूसरा तरीका type_desc . द्वारा फ़िल्टर करना है कॉलम:

SELECT 
  SCHEMA_NAME(schema_id) AS [Schema],
  name
FROM sys.objects
WHERE type_desc = 'SQL_STORED_PROCEDURE';

प्रक्रिया की परिभाषा लौटाएं

sys.objects दृश्य में ऑब्जेक्ट की परिभाषा के लिए एक कॉलम शामिल नहीं है। यदि आप प्रत्येक संग्रहीत कार्यविधि की परिभाषा वापस करना चाहते हैं, तो आप इसे sys.sql_modules के साथ जोड़ सकते हैं सिस्टम दृश्य।

उदाहरण:

SELECT definition
FROM sys.objects o
INNER JOIN sys.sql_modules m 
ON o.object_id = m.object_id
WHERE type = 'P';

विकल्प 3 - sys.procedures कैटलॉग व्यू

sys.procedures कैटलॉग संग्रहीत कार्यविधि में प्रत्येक ऑब्जेक्ट के लिए एक पंक्ति होती है जो किसी प्रकार की प्रक्रिया है, sys.objects.type के साथ =पी, एक्स, आरएफ, और पीसी।

निम्नलिखित कोड को निष्पादित करने से वे सभी संग्रहीत कार्यविधियाँ वापस आ जाएँगी जिनका उपयोगकर्ता या तो स्वामी है या जिस पर उपयोगकर्ता को कुछ अनुमति दी गई है।

SELECT 
  SCHEMA_NAME(schema_id) AS [Schema],
  Name
FROM sys.procedures;

परिणाम:

+----------+----------------------+
| Schema   | Name                 |
|----------+----------------------|
| dbo      | spAlbumsFromArtist   |
| dbo      | uspGetAlbumsByArtist |
+----------+----------------------+

यह दृश्य type इनहेरिट करता है sys.objects . से कॉलम इसलिए यदि आप चाहें तो परिणामों को प्रक्रिया प्रकार से फ़िल्टर कर सकते हैं।

SELECT 
  SCHEMA_NAME(schema_id),
  name
FROM sys.procedures
WHERE type = 'P';
सेलेक्ट करें

मेरे मामले में, मुझे एक ही परिणाम मिलता है क्योंकि मेरी दोनों प्रक्रियाएं "पी" प्रकार की हैं।

यदि आप सोच रहे हैं, तो यहां प्रत्येक प्रकार का क्या अर्थ है।

P
एसक्यूएल संग्रहित प्रक्रिया
X
विस्तारित संग्रहीत कार्यविधि
आरएफ
प्रतिकृति-फ़िल्टर-प्रक्रिया
पीसी
विधानसभा (CLR) संग्रहीत-प्रक्रिया

प्रक्रिया की परिभाषा लौटाएं

sys.procedures दृश्य में ऑब्जेक्ट की परिभाषा के लिए एक कॉलम शामिल नहीं है। पिछली विधि की तरह, यदि आप प्रत्येक संग्रहीत कार्यविधि की परिभाषा वापस करना चाहते हैं, तो आप इसे sys.sql_modules के साथ जोड़ सकते हैं सिस्टम दृश्य।

उदाहरण:

SELECT definition
FROM sys.procedures p
INNER JOIN sys.sql_modules m 
ON p.object_id = m.object_id;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप SQL Server 2005 डेटा को Excel में कैसे स्थानांतरित या निर्यात करते हैं?

  2. SQL सर्वर को Java डेटाबेस से कनेक्ट करना

  3. SQL सर्वर में थोक डेटा फ़ाइलें सम्मिलित करें

  4. SQL सर्वर में "शून्य त्रुटि से विभाजित करें" को ठीक करने के 5 तरीके (संदेश 8134)

  5. SQL सर्वर में xml आउटपुट में xml एन्कोडिंग <?xml संस्करण =1.0 एन्कोडिंग =UTF-8?> कैसे जोड़ें?