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

SQL सर्वर (T-SQL उदाहरण) में लिंक किए गए सर्वर से कॉलम जानकारी लौटाएं

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 . नामक चार अतिरिक्त कॉलम मिलते हैं (साथ ही कलाकार का नाम कॉलम)।


  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 सर्वर एक अंडरस्कोर से बचता है

  2. एक स्ट्रिंग में पहला गैर-संख्यात्मक वर्ण खोजने के लिए SQL

  3. मैं PHP के साथ काम करने के लिए SQLSRV एक्सटेंशन कैसे प्राप्त करूं, क्योंकि MSSQL पदावनत है?

  4. वितरित प्रश्नों के लिए OLE DB प्रदाता 'Microsoft.Jet.OLEDB.4.0' का उपयोग नहीं किया जा सकता है

  5. PI () SQL सर्वर में उदाहरण