Hvis du har brug for at køre SERVERPROPERTY()
funktion mod en forbundet server i SQL Server, kan du bruge en pass-through-forespørgsel. For at gøre dette skal du sende SERVERPROPERTY()
fungere som det andet argument til OPENQUERY()
funktion (det første argument er det linkede servernavn).
Eksempel 1 – Grundlæggende eksempel
Her er et eksempel.
SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Resultat:
+-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+
Eksempel 2 – Sammenlignet med en lokal forespørgsel
Bare for at bekræfte, at dette faktisk kom fra den linkede server (og ikke den lokale server), her er den igen, sammen med en forespørgsel mod den lokale server.
SELECT SERVERPROPERTY('ProductLevel') AS [Local ProductLevel]; SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Resultat:
+----------------------+ | Local ProductLevel | |----------------------| | CTP3.2 | +----------------------+ (1 row affected) +-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+ (1 row affected)
I dette tilfælde kører den lokale server SQL Server 2019 Preview, og den sammenkædede server kører SQL Server 2017. RTM betyder, at det er en original udgivelsesversion, hvorimod CTPn betyder, at det er en version af Community Technology Preview.
Se Hurtigt script, der returnerer alle egenskaber fra SERVERPROPERTY() i SQL Server 2017/2019, hvis du har brug for et script, der returnerer alle egenskaber.
Se også Microsoft-dokumentationen for en komplet liste over argumenter, der accepteres af denne funktion.