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

T-SQL का उपयोग करके SQL सर्वर में लिंक किए गए सर्वरों की सूची वापस करने के 2 तरीके

यदि आप स्वयं को SQL सर्वर में सभी लिंक किए गए सर्वरों की सूची प्राप्त करने के लिए Transact-SQL का उपयोग करने की आवश्यकता महसूस करते हैं, तो ऐसा करने के लिए आप नीचे दो तरीके अपना सकते हैं।

पहले उदाहरण में मैं sp_linkedservers . का उपयोग करता हूं लिंक किए गए सर्वर को वापस करने के लिए सिस्टम संग्रहीत प्रक्रिया। दूसरे उदाहरण में मैं sys.servers . का उपयोग करता हूं सिस्टम कैटलॉग व्यू।

उदाहरण 1 - sp_linkedservers संग्रहित प्रक्रिया

sp_linkedservers सिस्टम संग्रहीत कार्यविधि विशेष रूप से स्थानीय सर्वर में परिभाषित लिंक किए गए सर्वरों की सूची वापस करने के लिए डिज़ाइन की गई है।

इसे निष्पादित करने के लिए, यह करें:

EXEC sp_linkedservers;

परिणाम:

+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+
| SRV_NAME     | SRV_PROVIDERNAME   | SRV_PRODUCT   | SRV_DATASOURCE   | SRV_PROVIDERSTRING   | SRV_LOCATION   | SRV_CAT   |
|--------------+--------------------+---------------+------------------+----------------------+----------------+-----------|
| c1b060f68fcb | SQLNCLI            | SQL Server    | c1b060f68fcb     | NULL                 | NULL           | NULL      |
| Homer        | SQLNCLI            |               | 172.17.0.2,1433  | NULL                 | NULL           | NULL      |
+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+

इस मामले में मुझे दो पंक्तियां मिलती हैं। दरअसल, पहली पंक्ति मेरा स्थानीय सर्वर है। स्थानीय सर्वर में "होमर" नामक एक लिंक किया गया सर्वर होता है, और यह दूसरी पंक्ति में प्रदर्शित होता है।

उदाहरण 2 - sys.servers सिस्टम दृश्य

sys.servers सिस्टम कैटलॉग दृश्य में पंजीकृत प्रति लिंक या दूरस्थ सर्वर के लिए एक पंक्ति होती है, और स्थानीय सर्वर के लिए एक पंक्ति होती है जिसमें server_id होता है। का 0

यह दृश्य कुछ कॉलम लौटाता है, इसलिए मैं इस उदाहरण में परिणाम प्रदर्शित करने के लिए लंबवत आउटपुट का उपयोग करूंगा।

उदाहरण:

SELECT * 
FROM sys.servers;

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

-[ RECORD 1 ]-------------------------
server_id                                    | 0
name                                         | c1b060f68fcb
product                                      | SQL Server
provider                                     | SQLNCLI
data_source                                  | c1b060f68fcb
location                                     | NULL
provider_string                              | NULL
catalog                                      | NULL
connect_timeout                              | 0
query_timeout                                | 0
is_linked                                    | 0
is_remote_login_enabled                      | 1
is_rpc_out_enabled                           | 1
is_data_access_enabled                       | 0
is_collation_compatible                      | 0
uses_remote_collation                        | 1
collation_name                               | NULL
lazy_schema_validation                       | 0
is_system                                    | 0
is_publisher                                 | 0
is_subscriber                                | 0
is_distributor                               | 0
is_nonsql_subscriber                         | 0
is_remote_proc_transaction_promotion_enabled | 0
modify_date                                  | 2019-09-27 00:30:06.820
is_rda_server                                | 0
-[ RECORD 2 ]-------------------------
server_id                                    | 1
name                                         | Homer
product                                      | 
provider                                     | SQLNCLI
data_source                                  | 172.17.0.2,1433
location                                     | NULL
provider_string                              | NULL
catalog                                      | NULL
connect_timeout                              | 0
query_timeout                                | 0
is_linked                                    | 1
is_remote_login_enabled                      | 0
is_rpc_out_enabled                           | 0
is_data_access_enabled                       | 1
is_collation_compatible                      | 0
uses_remote_collation                        | 1
collation_name                               | NULL
lazy_schema_validation                       | 0
is_system                                    | 0
is_publisher                                 | 0
is_subscriber                                | 0
is_distributor                               | 0
is_nonsql_subscriber                         | 0
is_remote_proc_transaction_promotion_enabled | 1
modify_date                                  | 2019-09-29 10:31:36.570
is_rda_server                                | 0

दृश्य के साथ आपको बहुत अधिक जानकारी मिलती है।

बेशक, आप केवल उन्हीं कॉलमों को निर्दिष्ट कर सकते हैं जिनमें आपकी रुचि है।

उदाहरण के लिए:

SELECT 
  name,
  provider,
  data_source
FROM sys.servers;

परिणाम:

+--------------+------------+-----------------+
| name         | provider   | data_source     |
|--------------+------------+-----------------|
| c1b060f68fcb | SQLNCLI    | c1b060f68fcb    |
| Homer        | SQLNCLI    | 172.17.0.2,1433 |
+--------------+------------+-----------------+

और यदि आप नहीं चाहते कि स्थानीय सर्वर वापस आए, तो आप WHERE is_linked = 1 जोड़ सकते हैं आपकी क्वेरी के लिए:

SELECT 
  name,
  provider,
  data_source
FROM sys.servers
WHERE is_linked = 1;

परिणाम:

+--------+------------+-----------------+
| name   | provider   | data_source     |
|--------+------------+-----------------|
| Homer  | SQLNCLI    | 172.17.0.2,1433 |
+--------+------------+-----------------+

  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 सर्वर 2008 में एक प्रतीक से पहले एक स्ट्रिंग में एक उप-स्ट्रिंग को अलग करना

  2. मैक ओएस एक्स के लिए एसक्यूएल क्लाइंट जो एमएस एसक्यूएल सर्वर के साथ काम करता है

  3. SQL सर्वर 2017 में एक डेटाबेस को पुनर्स्थापित करें

  4. टी-एसक्यूएल संग्रहीत प्रक्रिया जो एकाधिक आईडी मान स्वीकार करती है

  5. SSMS 2016 Azure SQL v12 bacpac आयात करने में त्रुटि:पासवर्ड के बिना मास्टर कुंजियाँ समर्थित नहीं हैं