Pokud potřebujete spustit SERVERPROPERTY()
funkce proti propojenému serveru v SQL Server, můžete použít předávací dotaz. Chcete-li to provést, předejte SERVERPROPERTY()
funguje jako druhý argument pro OPENQUERY()
function (první argument je název propojeného serveru).
Příklad 1 – Základní příklad
Zde je příklad.
SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Výsledek:
+-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+
Příklad 2 – Porovnání s místním dotazem
Jen pro potvrzení, že to ve skutečnosti pocházelo z propojeného serveru (a nikoli z místního serveru), zde je to znovu spolu s dotazem na místní server.
SELECT SERVERPROPERTY('ProductLevel') AS [Local ProductLevel]; SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Výsledek:
+----------------------+ | Local ProductLevel | |----------------------| | CTP3.2 | +----------------------+ (1 row affected) +-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+ (1 row affected)
V tomto případě je na místním serveru spuštěn SQL Server 2019 Preview a na propojeném serveru je spuštěn SQL Server 2017. RTM znamená, že se jedná o původní verzi, zatímco CTPn znamená, že se jedná o verzi Community Technology Preview.
Pokud potřebujete skript, který vrací všechny vlastnosti, viz Rychlý skript, který vrací všechny vlastnosti ze SERVERPROPERTY() v SQL Server 2017/2019.
Úplný seznam argumentů akceptovaných touto funkcí naleznete také v dokumentaci společnosti Microsoft.