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

SQL सर्वर में लिंक किए गए सर्वर से तालिकाओं की सूची लौटाएं (T-SQL उदाहरण)

SQL सर्वर में आप sp_tables_ex . का उपयोग कर सकते हैं एक निर्दिष्ट लिंक किए गए सर्वर से तालिकाओं के बारे में तालिका जानकारी वापस करने के लिए सिस्टम संग्रहीत प्रक्रिया।

इस संग्रहीत कार्यविधि को निष्पादित करने का सबसे सरल तरीका लिंक किए गए सर्वर का नाम पास करना है। ऐसा करने से सिस्टम टेबल और व्यू सहित निर्दिष्ट लिंक्ड सर्वर पर डिफ़ॉल्ट डेटाबेस से सभी टेबल वापस आ जाएंगे। यह एक बड़ी सूची हो सकती है।

आपके पास एक भिन्न डेटाबेस और/या एक विशिष्ट तालिका स्कीमा निर्दिष्ट करने का विकल्प भी है। आप तालिका प्रकार (जैसे तालिका, दृश्य, सिस्टम तालिका, आदि) के आधार पर परिणामों को फ़िल्टर भी कर सकते हैं।

सिंटैक्स

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

sp_tables_ex [ @table_server = ] 'table_server'   
     [ , [ @table_name = ] 'table_name' ]   
     [ , [ @table_schema = ] 'table_schema' ]  
     [ , [ @table_catalog = ] 'table_catalog' ]   
     [ , [ @table_type = ] 'table_type' ]   
     [ , [@fUsePattern = ] 'fUsePattern' ]

@table_server तर्क ही आवश्यक तर्क है। यह लिंक किए गए सर्वर का नाम है जिससे आप तालिका की जानकारी चाहते हैं।

अन्य तर्क वैकल्पिक हैं, और मैं उन्हें निम्नलिखित उदाहरणों में शामिल करता हूं। इन तर्कों के बारे में अधिक जानकारी के लिए, Microsoft दस्तावेज़ देखें।

उदाहरण 1 - सभी टेबल लौटाएं

निम्न उदाहरण होमर नामक लिंक किए गए सर्वर पर डिफ़ॉल्ट डेटाबेस से सभी तालिकाओं, दृश्यों, सिस्टम तालिकाओं, उपनामों आदि को लौटाता है।

EXEC sp_tables_ex 'Homer';

यह मेरे सिस्टम पर सैकड़ों पंक्तियां लौटाता है, इसलिए मैं इस उदाहरण में परिणामों की सूची नहीं दूंगा। ध्यान रखें, उनमें से अधिकतर पंक्तियां सिस्टम टेबल और सिस्टम दृश्य हैं।

इसे इस तरह भी किया जा सकता है:

EXEC sp_tables_ex @table_server = 'Homer';

उदाहरण 2 - एक अलग डेटाबेस निर्दिष्ट करें

निम्न उदाहरण निर्दिष्ट करता है कि WideWorldImportersDW डेटाबेस का उपयोग किया जाना चाहिए।

EXEC sp_tables_ex 
  @table_server = 'Homer',   
  @table_catalog = 'WideWorldImportersDW';

फिर से, यह सैकड़ों पंक्तियां लौटाता है, इसलिए मैं परिणामों की सूची नहीं दूंगा।

उदाहरण 3 - एक विशिष्ट तालिका लौटाएं

इस उदाहरण में, मैं एक विशिष्ट तालिका के बारे में जानकारी लौटाता हूं।

EXEC sp_tables_ex 
  @table_server = 'Homer', 
  @table_catalog = 'Music',
  @table_name = 'Artists';

परिणाम:

+-------------+---------------+--------------+--------------+-----------+
| TABLE_CAT   | TABLE_SCHEM   | TABLE_NAME   | TABLE_TYPE   | REMARKS   |
|-------------+---------------+--------------+--------------+-----------|
| Music       | dbo           | Artists      | TABLE        | NULL      |
+-------------+---------------+--------------+--------------+-----------+

उदाहरण 4 - केवल वापसी दृश्य

इस उदाहरण में, मैं निर्दिष्ट करता हूं कि केवल दृश्य ही लौटाए जाने चाहिए।

EXEC sp_tables_ex 
  @table_server = 'Homer', 
  @table_catalog = 'Music',
  @table_type = 'VIEW';

परिणाम:

+-------------+---------------+--------------+--------------+-----------+
| TABLE_CAT   | TABLE_SCHEM   | TABLE_NAME   | TABLE_TYPE   | REMARKS   |
|-------------+---------------+--------------+--------------+-----------|
| Music       | dbo           | BluesAlbums  | VIEW         | NULL      |
| Music       | dbo           | JazzAlbums   | VIEW         | NULL      |
| Music       | dbo           | RockAlbums   | VIEW         | NULL      |
+-------------+---------------+--------------+--------------+-----------+

ध्यान दें कि इनमें सिस्टम दृश्य शामिल नहीं हैं। अगर मैं सिस्टम दृश्य वापस करना चाहता, तो मैं @table_type = 'SYSTEM VIEW' का उपयोग करता। (और परिणाम सेट बहुत बड़ा होगा)।

@table_type तर्क निम्नलिखित प्रकारों को स्वीकार करता है:ALIAS , GLOBAL TEMPORARY , LOCAL TEMPORARY , SYNONYM , SYSTEM TABLE , SYSTEM VIEW , TABLE , और VIEW

उदाहरण 5 - एक टेबल स्कीमा निर्दिष्ट करें

निम्न उदाहरण परिणामों को एक विशिष्ट तालिका स्कीमा (Dimension . तक सीमित करता है) ) WideWorldImportersDW . के अंदर डेटाबेस।

EXEC sp_tables_ex 
  @table_server = 'Homer',   
  @table_catalog = 'WideWorldImportersDW',   
  @table_schema = 'Dimension';

परिणाम:

+----------------------+---------------+------------------+--------------+-----------+
| TABLE_CAT            | TABLE_SCHEM   | TABLE_NAME       | TABLE_TYPE   | REMARKS   |
|----------------------+---------------+------------------+--------------+-----------|
| WideWorldImportersDW | Dimension     | City             | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Customer         | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Date             | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Employee         | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Payment Method   | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Stock Item       | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Supplier         | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Transaction Type | TABLE        | NULL      |
+----------------------+---------------+------------------+--------------+-----------+

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

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

डिफ़ॉल्ट मान 1 है , जिसका अर्थ है कि वे हैं वाइल्डकार्ड वर्णों के रूप में व्याख्या की गई। आप निर्दिष्ट कर सकते हैं 0 यह निर्दिष्ट करने के लिए कि उन्हें नहीं . करना चाहिए वाइल्डकार्ड वर्णों के रूप में व्याख्या की जाए।

यहां वाइल्डकार्ड वर्ण का उपयोग करने का एक उदाहरण दिया गया है:

EXEC sp_tables_ex 
  @table_server = 'Homer', 
  @table_catalog = 'WideWorldImportersDW',
  @table_name = 'C%',
  @table_type = 'TABLE',
  @fUsePattern = 1;

परिणाम:

+----------------------+---------------+------------------+--------------+-----------+
| TABLE_CAT            | TABLE_SCHEM   | TABLE_NAME       | TABLE_TYPE   | REMARKS   |
|----------------------+---------------+------------------+--------------+-----------|
| WideWorldImportersDW | Dimension     | City             | TABLE        | NULL      |
| WideWorldImportersDW | Dimension     | Customer         | TABLE        | NULL      |
| WideWorldImportersDW | Integration   | City_Staging     | TABLE        | NULL      |
| WideWorldImportersDW | Integration   | Customer_Staging | TABLE        | NULL      |
+----------------------+---------------+------------------+--------------+-----------+

और अगर मैं कोई वाइल्डकार्ड वर्ण निर्दिष्ट नहीं करता तो क्या होता है:

EXEC sp_tables_ex 
  @table_server = 'Homer', 
  @table_catalog = 'WideWorldImportersDW',
  @table_name = 'C%',
  @table_type = 'TABLE',
  @fUsePattern = 0;

परिणाम:

(0 rows affected)
Time: 0.324s

  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 सर्वर (T-SQL) में डेटाबेस की सूची प्राप्त करने के 3 तरीके

  2. दो दशमलव स्थानों के साथ एक संख्या लिखें SQL सर्वर

  3. SQL डेटाबेस पुनर्प्राप्ति लंबित पहुँच अस्वीकृत समस्या को ठीक करें

  4. निकाय ढांचे का उपयोग करके प्राथमिक कुंजी मान अपडेट करें

  5. SQL सर्वर को समझना ALTER TABLE ADD COLUMN Statement