Jeśli potrzebujesz uruchomić SERVERPROPERTY()
funkcji na serwerze połączonym w programie SQL Server, można użyć zapytania przekazującego. Aby to zrobić, przekaż SERVERPROPERTY()
funkcja jako drugi argument OPENQUERY()
funkcja (pierwszy argument to nazwa połączonego serwera).
Przykład 1 – Przykład podstawowy
Oto przykład.
SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Wynik:
+-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+
Przykład 2 – w porównaniu z zapytaniem lokalnym
Aby potwierdzić, że w rzeczywistości pochodziło to z serwera połączonego (a nie z serwera lokalnego), oto znowu, wraz z zapytaniem do serwera lokalnego.
SELECT SERVERPROPERTY('ProductLevel') AS [Local ProductLevel]; SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Wynik:
+----------------------+ | Local ProductLevel | |----------------------| | CTP3.2 | +----------------------+ (1 row affected) +-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+ (1 row affected)
W takim przypadku na serwerze lokalnym działa wersja zapoznawcza programu SQL Server 2019, a na serwerze połączonym działa program SQL Server 2017. RTM oznacza, że jest to oryginalna wersja wydania, podczas gdy CTPn oznacza, że jest to wersja Community Technology Preview.
Zobacz Szybki skrypt, który zwraca wszystkie właściwości z SERVERPROPERTY() w programie SQL Server 2017/2019, jeśli potrzebujesz skryptu, który zwraca wszystkie właściwości.
Zobacz także dokumentację firmy Microsoft, aby uzyskać pełną listę argumentów akceptowanych przez tę funkcję.