SQL सर्वर में आप sp_columns_ex
. का उपयोग कर सकते हैं एक निर्दिष्ट लिंक किए गए सर्वर से कॉलम के बारे में कॉलम जानकारी वापस करने के लिए सिस्टम संग्रहीत प्रक्रिया।
आप एक व्यक्तिगत कॉलम निर्दिष्ट कर सकते हैं, या आप किसी दिए गए डेटाबेस, टेबल आदि से सभी कॉलम निर्दिष्ट कर सकते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
sp_columns_ex [ @table_server = ] 'table_server' [ , [ @table_name = ] 'table_name' ] [ , [ @table_schema = ] 'table_schema' ] [ , [ @table_catalog = ] 'table_catalog' ] [ , [ @column_name = ] 'column' ] [ , [ @ODBCVer = ] 'ODBCVer' ]
@table_server
तर्क ही आवश्यक तर्क है। यह लिंक किए गए सर्वर का नाम है जिससे आप तालिका की जानकारी चाहते हैं।
अन्य तर्क वैकल्पिक हैं, और मैं उनमें से अधिकांश को निम्नलिखित उदाहरणों में शामिल करता हूं। इन तर्कों के बारे में अधिक जानकारी के लिए, Microsoft दस्तावेज़ देखें।
उदाहरण 1 - एक विशिष्ट कॉलम लौटाएं
निम्न उदाहरण एक विशिष्ट कॉलम के बारे में जानकारी देता है।
EXEC sp_columns_ex @table_server = 'Homer', @table_name = 'Artists', @table_schema = 'dbo', @table_catalog = 'Music', @column_name = 'ArtistName';
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
TABLE_CAT | Music TABLE_SCHEM | dbo TABLE_NAME | Artists COLUMN_NAME | ArtistName DATA_TYPE | -9 TYPE_NAME | nvarchar COLUMN_SIZE | 255 BUFFER_LENGTH | 510 DECIMAL_DIGITS | NULL NUM_PREC_RADIX | NULL NULLABLE | 0 REMARKS | NULL COLUMN_DEF | NULL SQL_DATA_TYPE | -9 SQL_DATETIME_SUB | NULL CHAR_OCTET_LENGTH | 510 ORDINAL_POSITION | 2 IS_NULLABLE | NO SS_DATA_TYPE | 39
इस मामले में, सर्वर का नाम Homer
है , डेटाबेस का नाम Music
है , तालिका का नाम है Artists
, टेबल स्कीमा dbo
है और कॉलम का नाम ArtistName
है ।
इसे इस तरह भी किया जा सकता है:
EXEC sp_columns_ex 'Homer', 'Artists', 'dbo', 'Music', 'ArtistName';
उदाहरण 2 - केवल एक तालिका निर्दिष्ट करें
इस उदाहरण में मैं केवल तालिका का नाम निर्दिष्ट करता हूं।
EXEC sp_columns_ex @table_server = 'Homer', @table_name = 'Artists';
यह कलाकारों . में सभी स्तंभों के बारे में जानकारी देता है टेबल।
उदाहरण 3 - डेटाबेस और कॉलम का नाम निर्दिष्ट करें
इस उदाहरण में मैं डेटाबेस और कॉलम निर्दिष्ट करता हूं, लेकिन तालिका नहीं।
EXEC sp_columns_ex @table_server = 'Homer', @table_catalog = 'Music', @column_name = 'ArtistName';
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
-[ RECORD 1 ]------------------------- TABLE_CAT | Music TABLE_SCHEM | dbo TABLE_NAME | Artists COLUMN_NAME | ArtistName DATA_TYPE | -9 TYPE_NAME | nvarchar COLUMN_SIZE | 255 BUFFER_LENGTH | 510 DECIMAL_DIGITS | NULL NUM_PREC_RADIX | NULL NULLABLE | 0 REMARKS | NULL COLUMN_DEF | NULL SQL_DATA_TYPE | -9 SQL_DATETIME_SUB | NULL CHAR_OCTET_LENGTH | 510 ORDINAL_POSITION | 2 IS_NULLABLE | NO SS_DATA_TYPE | 39 -[ RECORD 2 ]------------------------- TABLE_CAT | Music TABLE_SCHEM | dbo TABLE_NAME | BluesAlbums COLUMN_NAME | ArtistName DATA_TYPE | -9 TYPE_NAME | nvarchar COLUMN_SIZE | 255 BUFFER_LENGTH | 510 DECIMAL_DIGITS | NULL NUM_PREC_RADIX | NULL NULLABLE | 0 REMARKS | NULL COLUMN_DEF | NULL SQL_DATA_TYPE | -9 SQL_DATETIME_SUB | NULL CHAR_OCTET_LENGTH | 510 ORDINAL_POSITION | 2 IS_NULLABLE | NO SS_DATA_TYPE | 39 -[ RECORD 3 ]------------------------- TABLE_CAT | Music TABLE_SCHEM | dbo TABLE_NAME | JazzAlbums COLUMN_NAME | ArtistName DATA_TYPE | -9 TYPE_NAME | nvarchar COLUMN_SIZE | 255 BUFFER_LENGTH | 510 DECIMAL_DIGITS | NULL NUM_PREC_RADIX | NULL NULLABLE | 0 REMARKS | NULL COLUMN_DEF | NULL SQL_DATA_TYPE | -9 SQL_DATETIME_SUB | NULL CHAR_OCTET_LENGTH | 510 ORDINAL_POSITION | 2 IS_NULLABLE | NO SS_DATA_TYPE | 39 -[ RECORD 4 ]------------------------- TABLE_CAT | Music TABLE_SCHEM | dbo TABLE_NAME | RockAlbums COLUMN_NAME | ArtistName DATA_TYPE | -9 TYPE_NAME | nvarchar COLUMN_SIZE | 255 BUFFER_LENGTH | 510 DECIMAL_DIGITS | NULL NUM_PREC_RADIX | NULL NULLABLE | 0 REMARKS | NULL COLUMN_DEF | NULL SQL_DATA_TYPE | -9 SQL_DATETIME_SUB | NULL CHAR_OCTET_LENGTH | 510 ORDINAL_POSITION | 2 IS_NULLABLE | NO SS_DATA_TYPE | 39
इसने तीन और कॉलम लौटाए। ये तीन अलग-अलग विचारों से होते हैं (डेटाबेस में ArtistName
. के साथ तीन दृश्य होते हैं कॉलम:BluesAlbums
, JazzAlbums
, और RockAlbums
)।
उदाहरण 4 - केवल एक डेटाबेस निर्दिष्ट करें
यहाँ मैं केवल डेटाबेस निर्दिष्ट करता हूँ:
EXEC sp_columns_ex @table_server = 'Homer', @table_catalog = 'Music';
मैं यहां परिणाम प्रदर्शित नहीं करूंगा क्योंकि इसने लगभग 6,000 पंक्तियों को वापस कर दिया है। इनमें से अधिकांश sys
. के थे टेबल स्कीमा।
उदाहरण 5 - एक टेबल स्कीमा निर्दिष्ट करें
निम्न उदाहरण परिणामों को एक विशिष्ट तालिका स्कीमा (dbo
. तक सीमित करता है) )।
EXEC sp_columns_ex @table_server = 'Homer', @table_schema = 'dbo';
इसने पिछले उदाहरण की तुलना में बहुत छोटा परिणाम सेट किया। यह अभी भी काफी बड़ा है, इसलिए मैं इसे यहां प्रदर्शित नहीं करूंगा।
उदाहरण 6 - वाइल्डकार्ड वर्ण
आप वाइल्डकार्ड वर्णों का भी उपयोग कर सकते हैं। यहां %
. का उपयोग करने का एक उदाहरण दिया गया है वाइल्डकार्ड वर्ण:
EXEC sp_columns_ex @table_server = 'Homer', @table_schema = 'dbo', @table_catalog = 'Music', @column_name = 'Ar%';
यह Ar
. से शुरू होने वाले सभी कॉलम लौटाता है . मेरे मामले में, इसने दो
ArtistId
. लौटाए कॉलम और चार
ArtistName
कॉलम।
मैं इसे कम कर सकता हूं:
EXEC sp_columns_ex @table_server = 'Homer', @table_schema = 'dbo', @table_catalog = 'Music', @column_name = 'Ar%Name';
इसने केवल कलाकारनाम लौटाया कॉलम।
हालांकि, अगर मैं r
. को हटा दूं :
EXEC sp_columns_ex @table_server = 'Homer', @table_schema = 'dbo', @table_catalog = 'Music', @column_name = 'A%Name';
अब मुझे AlbumName . नामक चार अतिरिक्त कॉलम मिलते हैं (साथ ही कलाकार का नाम कॉलम)।