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

SQL सर्वर डेटाबेस में सभी उपयोगकर्ता-परिभाषित कार्यों को वापस करने के 2 तरीके

यह आलेख SQL सर्वर डेटाबेस में उपयोगकर्ता-परिभाषित फ़ंक्शन की सूची वापस करने के दो तरीके प्रस्तुत करता है।

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

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

यह दृश्य संग्रहीत कार्यविधियों के साथ-साथ फ़ंक्शन भी लौटाता है, इसलिए आपको एक WHERE जोड़ना होगा इसे केवल कार्यों तक सीमित करने के लिए खंड।

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

परिणाम:

+------------------+-------------------------+----------------+-------------+
| ROUTINE_SCHEMA   | ROUTINE_NAME            | ROUTINE_TYPE   | DATA_TYPE   |
|------------------+-------------------------+----------------+-------------|
| dbo              | ISOweek                 | FUNCTION       | int         |
| dbo              | ufn_AlbumsByGenre       | FUNCTION       | TABLE       |
| dbo              | ufn_AlbumsByArtist      | FUNCTION       | TABLE       |
| dbo              | ufn_AlbumsByGenre_MSTVF | FUNCTION       | TABLE       |
+------------------+-------------------------+----------------+-------------+

फ़ंक्शन की परिभाषा लौटाएं

इस दृश्य में एक ROUTINE_DEFINITION भी है कॉलम, ताकि यदि आवश्यक हो तो आप आसानी से प्रत्येक फ़ंक्शन की परिभाषा वापस कर सकते हैं।

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

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

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

SELECT 
  SCHEMA_NAME(schema_id) AS [Schema],
  name,
  type_desc
FROM sys.objects
WHERE type IN ('AF','FN','FS','FT','IF','TF');

परिणाम:

+----------+-------------------------+----------------------------------+
| Schema   | name                    | type_desc                        |
|----------+-------------------------+----------------------------------|
| dbo      | ISOweek                 | SQL_SCALAR_FUNCTION              |
| dbo      | ufn_AlbumsByGenre       | SQL_INLINE_TABLE_VALUED_FUNCTION |
| dbo      | ufn_AlbumsByArtist      | SQL_INLINE_TABLE_VALUED_FUNCTION |
| dbo      | ufn_AlbumsByGenre_MSTVF | SQL_TABLE_VALUED_FUNCTION        |
+----------+-------------------------+----------------------------------+

यहाँ मैंने WHERE . में सभी प्रकार्यों को स्पष्ट रूप से शामिल किया है खंड।

यदि आप एक तदर्थ क्वेरी चला रहे हैं, लेकिन आपको सभी प्रकार याद नहीं हैं, तो आप कुछ ऐसा कर सकते हैं:

SELECT 
  SCHEMA_NAME(schema_id) AS [Schema],
  name,
  type_desc
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION';

या यह:

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

फ़ंक्शन की परिभाषा लौटाएं

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 IN ('AF','FN','FS','FT','IF','TF');

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शीर्ष X संपादित करने के लिए मान कैसे बदलें और SQL सर्वर प्रबंधन स्टूडियो (SSMS) में शीर्ष X पंक्तियों का चयन करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 20

  2. यदि अन्य कॉलम रिक्त है तो एक कॉलम का चयन करें

  3. डालने के दौरान सी # में एसक्यूएल अद्वितीय बाधा उल्लंघन पकड़ने का सबसे अच्छा तरीका

  4. SQL सर्वर INFORMATION_SCHEMA दृश्य | देखें कि क्या कोई तालिका मौजूद है

  5. SQL सर्वर में लेनदेन लॉग का महत्व