Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

2 начина за връщане на списък със свързани сървъри в SQL Server с помощта на T-SQL

Ако установите, че трябва да използвате Transact-SQL, за да получите списък на всички свързани сървъри в SQL Server, по-долу са два начина, по които можете да направите това.

В първия пример използвам 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      |
+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+

В този случай получавам два реда. Всъщност първият ред е моят локален сървър. Локалният сървър има свързан сървър, наречен „Homer“, и той се показва на втория ред.

Пример 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 Server?

  2. Позоваване на псевдоним другаде в списъка SELECT

  3. Преобразуване от DateTime в INT

  4. Изберете и редактирайте вертикални блокове в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 9

  5. SQL заявка за актуализация на горния 1 ред