Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

2 cách trả về danh sách máy chủ được liên kết trong SQL Server bằng T-SQL

Nếu bạn thấy mình cần sử dụng Transact-SQL để nhận danh sách tất cả các máy chủ được liên kết trong SQL Server, thì dưới đây là hai cách bạn có thể thực hiện để thực hiện việc này.

Trong ví dụ đầu tiên, tôi sử dụng sp_linkedservers hệ thống lưu trữ thủ tục để trả lại các máy chủ được liên kết. Trong ví dụ thứ hai, tôi sử dụng sys.servers chế độ xem danh mục hệ thống.

Ví dụ 1 - sp_linkedservers Thủ tục được lưu trữ

sp_linkedservers quy trình lưu trữ hệ thống được thiết kế đặc biệt để trả về danh sách các máy chủ được liên kết được xác định trong máy chủ cục bộ.

Để thực thi nó, hãy làm như sau:

EXEC sp_linkedservers;

Kết quả:

+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+
| 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      |
+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+

Trong trường hợp này, tôi nhận được hai hàng. Trên thực tế, hàng đầu tiên là máy chủ cục bộ của tôi. Máy chủ cục bộ có một máy chủ được liên kết gọi là “Homer” và được hiển thị ở hàng thứ hai.

Ví dụ 2 - sys.servers Chế độ xem hệ thống

sys.servers chế độ xem danh mục hệ thống chứa một hàng cho mỗi máy chủ được liên kết hoặc từ xa đã đăng ký và một hàng cho máy chủ cục bộ có server_id trong tổng số 0 .

Chế độ xem này trả về khá nhiều cột, vì vậy tôi sẽ sử dụng đầu ra theo chiều dọc để hiển thị kết quả trong ví dụ này.

Ví dụ:

SELECT * 
FROM sys.servers;

Kết quả (sử dụng đầu ra dọc):

-[ 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

Bạn nhận được nhiều thông tin hơn với chế độ xem.

Tất nhiên, bạn cũng có thể chỉ định những cột mà bạn quan tâm.

Ví dụ:

SELECT 
  name,
  provider,
  data_source
FROM sys.servers;

Kết quả:

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

Và nếu bạn không muốn máy chủ cục bộ trả về, bạn có thể thêm WHERE is_linked = 1 cho truy vấn của bạn:

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

Kết quả:

+--------+------------+-----------------+
| 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 Express so với express localdb

  2. Chức năng tách trong SQL Server 2008

  3. Làm cách nào để sử dụng SqlCommand để TẠO CƠ SỞ DỮ LIỆU với tên db được tham số hóa?

  4. Nhóm luôn sẵn sàng của SQL Server:Cài đặt và cấu hình, Phần 1

  5. Cách xác định vị trí công việc tác nhân máy chủ SQL trong Azure Data Studio