Se è necessario eseguire SERVERPROPERTY()
funzione su un server collegato in SQL Server, è possibile utilizzare una query pass-through. Per fare ciò, passa il SERVERPROPERTY()
funzione come secondo argomento per OPENQUERY()
funzione (il primo argomento è il nome del server collegato).
Esempio 1 – Esempio di base
Ecco un esempio.
SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Risultato:
+-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+
Esempio 2:confronto con una query locale
Giusto per confermare che proveniva effettivamente dal server collegato (e non dal server locale), eccolo di nuovo, insieme a una query sul server locale.
SELECT SERVERPROPERTY('ProductLevel') AS [Local ProductLevel]; SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];' );
Risultato:
+----------------------+ | Local ProductLevel | |----------------------| | CTP3.2 | +----------------------+ (1 row affected) +-----------------------+ | Remote ProductLevel | |-----------------------| | RTM | +-----------------------+ (1 row affected)
In questo caso, il server locale esegue l'anteprima di SQL Server 2019 e il server collegato esegue SQL Server 2017. RTM significa che è una versione originale, mentre CTPn significa che è una versione Community Technology Preview.
Vedere script rapido che restituisce tutte le proprietà da SERVERPROPERTY() in SQL Server 2017/2019 se è necessario uno script che restituisca tutte le proprietà.
Consulta anche la documentazione Microsoft per un elenco completo degli argomenti accettati da questa funzione.