Nếu bạn cần chạy SERVERPROPERTY()
chức năng chống lại một máy chủ được liên kết trong SQL Server, bạn có thể sử dụng một truy vấn chuyển qua. Để thực hiện việc này, hãy chuyển SERVERPROPERTY()
làm đối số thứ hai cho OPENQUERY()
hàm (đối số đầu tiên là tên máy chủ được liên kết).
Ví dụ 1 - Ví dụ cơ bản
Đây là một ví dụ.
SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Kết quả:
+-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+
Ví dụ 2 - So sánh với Truy vấn cục bộ
Chỉ để xác nhận rằng điều này thực sự đến từ máy chủ được liên kết (chứ không phải máy chủ cục bộ), đây là một lần nữa, cùng với một truy vấn chống lại máy chủ cục bộ.
SELECT SERVERPROPERTY('ProductLevel') AS [Local ProductLevel]; SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Kết quả:
+----------------------+ | Local ProductLevel | |----------------------| | CTP3.2 | +----------------------+ (1 row affected) +-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+ (1 row affected)
Trong trường hợp này, máy chủ cục bộ đang chạy SQL Server 2019 Preview và máy chủ được liên kết đang chạy SQL Server 2017. RTM có nghĩa là đây là phiên bản phát hành gốc, trong khi CTPn có nghĩa là đây là phiên bản Xem trước Công nghệ Cộng đồng.
Xem Tập lệnh nhanh trả về tất cả thuộc tính từ SERVERPROPERTY () trong SQL Server 2017/2019 nếu bạn cần tập lệnh trả về tất cả thuộc tính.
Ngoài ra, hãy xem tài liệu của Microsoft để biết danh sách đầy đủ các đối số được hàm này chấp nhận.