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

SQL सर्वर में संग्रहीत कार्यविधि के लिए स्तंभ जानकारी लौटाएँ:sp_sproc_columns

SQL सर्वर में, sp_sproc_columns सिस्टम संग्रहीत कार्यविधि आपको मौजूदा सिस्टम में किसी संग्रहीत कार्यविधि या उपयोगकर्ता-परिभाषित फ़ंक्शन के लिए स्तंभ जानकारी प्राप्त करने में सक्षम बनाती है।

यह ODBC में SQLProcedureColumns के बराबर है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

sp_sproc_columns [[@procedure_name =] 'name'] [ , [@procedure_owner =] 'मालिक'] [ , [@procedure_qualifier =] 'क्वालीफायर'] [ , [@column_name =] 'column_name'] [ , [ @ODBCVer =] 'ODBCVer'] [ , [@fUsePattern =] 'fUsePattern']

सभी तर्क वैकल्पिक हैं। इनकी विस्तृत व्याख्या के लिए Microsoft दस्तावेज़ देखें।

उदाहरण 1 - कोई तर्क नहीं निर्दिष्ट करें

आप बिना कोई तर्क दिए संग्रहीत कार्यविधि को निष्पादित कर सकते हैं। इस तरह:

EXEC sp_sproc_columns

या इस तरह भी:

sp_sproc_columns

यह वर्तमान डेटाबेस में सभी संग्रहीत कार्यविधियों और उपयोगकर्ता-परिभाषित कार्यों को लौटाता है। जब मैं इसे वाइडवर्ल्ड इम्पोर्टर्स नमूना डेटाबेस के विरुद्ध चलाता हूं तो मुझे 9077 पंक्तियां मिलती हैं। अगले उदाहरण में मैं इसे केवल एक तक सीमित कर दूंगा।

उदाहरण 2 - सभी तर्क निर्दिष्ट करें

यदि आप सभी तर्कों को शामिल करते हैं तो यह कैसा दिखता है।

EXEC sp_sproc_columns @procedure_name ='GetCityUpdates', @procedure_owner ='एकीकरण', @procedure_qualifier ='WideWorldImporters', @column_name ='@RETURN_VALUE', @ODBCVer =2, @fUsePattern =1;
 परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

PROCEDURE_QUALIFIER | वाइडवर्ल्डइम्पोर्टर्सPROCEDURE_OWNER | एकीकरणPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @RETURN_VALUECOLUMN_TYPE | 5DATA_TYPE | 4TYPE_NAME | अंतर सटीक | 10LENGTH | 4स्केल | 0RADIX | 10नलेबल | 0टिप्पणियां | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | 4SQL_DATETIME_SUB | NULLCHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 0IS_NULLABLE | NOSS_DATA_TYPE | 56

इस मामले में, मैं GetCityUpdates . के वापसी मूल्य के बारे में जानकारी लौटाता हूं संग्रहीत प्रक्रिया।

उदाहरण 3 - केवल संग्रहीत कार्यविधि (या फ़ंक्शन) निर्दिष्ट करें

सभी तर्कों को शामिल करने के बजाय, आप केवल संग्रहीत कार्यविधि का नाम शामिल कर सकते हैं। हालांकि, यदि आप @column_name . निर्दिष्ट नहीं करते हैं , ऐसा करने से प्रत्येक कॉलम के लिए एक पंक्ति वापस आ जाएगी।

साथ ही, आप तर्क नाम (यानी केवल इसके मूल्य सहित) को छोड़ कर अपना कोड अधिक संक्षिप्त बना सकते हैं।

EXEC sp_sproc_columns GetCityUpdates;

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

-[रिकॉर्ड 1]-------------------------- PROCEDURE_QUALIFIER | वाइडवर्ल्डइम्पोर्टर्सPROCEDURE_OWNER | एकीकरणPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @RETURN_VALUECOLUMN_TYPE | 5DATA_TYPE | 4TYPE_NAME | अंतर सटीक | 10LENGTH | 4स्केल | 0RADIX | 10नलेबल | 0टिप्पणियां | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | 4SQL_DATETIME_SUB | NULLCHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 0IS_NULLABLE | NOSS_DATA_TYPE | 56- [रिकॉर्ड 2] ---------------------------- PROCEDURE_QUALIFIER | वाइडवर्ल्डइम्पोर्टर्सPROCEDURE_OWNER | एकीकरणPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @LastCutoffCOLUMN_TYPE | 1DATA_TYPE | -9TYPE_NAME | डेटाटाइम2प्रेसीशन | 27LENGTH | 54स्केल | 7RADIX | निरर्थक | 1टिप्पणियां | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | -9SQL_DATETIME_SUB | 3CHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 1IS_NULLABLE | YESSS_DATA_TYPE | 0-[रिकॉर्ड 3]---------------------------PROCEDURE_QUALIFIER | वाइडवर्ल्डइम्पोर्टर्सPROCEDURE_OWNER | एकीकरणPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @NewCutoffCOLUMN_TYPE | 1DATA_TYPE | -9TYPE_NAME | डेटाटाइम2प्रेसीशन | 27LENGTH | 54स्केल | 7RADIX | निरर्थक | 1टिप्पणियां | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | -9SQL_DATETIME_SUB | 3CHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 2IS_NULLABLE | YESSS_DATA_TYPE | 0

उदाहरण 4 - अन्य विविधताएं

आप केवल आवश्यक जानकारी वापस करने के लिए तर्कों की कोई भी विविधता प्रदान कर सकते हैं।

उदाहरण के लिए, आप किसी विशेष प्रक्रिया स्वामी से सभी जानकारी वापस कर सकते हैं:

EXEC sp_sproc_columns @procedure_owner ='एकीकरण'

या आप सभी प्रक्रियाओं और उपयोगकर्ता द्वारा परिभाषित कार्यों से सभी वापसी मूल्यों के बारे में जानकारी प्राप्त कर सकते हैं:

EXEC sp_sproc_columns @column_name ='@RETURN_VALUE'

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

EXEC sp_sproc_columns @column_name ='@RETURN_VALUE', @procedure_qualifier ='WideWorldImporters';

उदाहरण 5 - वाइल्डकार्ड वर्ण

@fUsePattern तर्क आपको यह निर्दिष्ट करने में सक्षम बनाता है कि अंडरस्कोर है या नहीं (_ ), प्रतिशत (% ), और ब्रैकेट ([ .) ] ) वर्णों की व्याख्या वाइल्डकार्ड वर्णों के रूप में की जाती है।

उदाहरण के लिए, निम्न कोड चलाने से सभी प्रक्रियाएं और उपयोगकर्ता-परिभाषित फ़ंक्शन वापस आ जाएंगे जो Get से शुरू होते हैं। .

EXEC sp_sproc_columns @procedure_name ='% प्राप्त करें', @fUsePattern =1;

तो मेरे मामले में, इसने GetCityUpdates, GetCustomerUpdates, GetMovementUpdates, आदि जैसी प्रक्रियाओं को वापस कर दिया।

अगर मैं वाइल्डकार्ड वर्ण अक्षम कर दूं:

EXEC sp_sproc_columns @procedure_name ='गेट%', @fUsePattern =0;

मुझे कोई परिणाम नहीं मिलता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गलत रचनाक्रम पास के ''

  2. एक दृश्य में संग्रहीत प्रक्रिया को कैसे कॉल करें?

  3. SQLException:स्ट्रिंग या बाइनरी डेटा को छोटा कर दिया जाएगा

  4. JDBC के माध्यम से एक Linux मशीन से Windows प्रमाणीकरण के साथ SQL सर्वर से कनेक्ट करें

  5. योग के साथ एक सारांश पंक्ति जोड़ें