Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Executar SERVERPROPERTY() em um servidor vinculado no SQL Server


Se você precisar executar o SERVERPROPERTY() função em um servidor vinculado no SQL Server, você pode usar uma consulta de passagem. Para fazer isso, passe o SERVERPROPERTY() função como o segundo argumento para o OPENQUERY() função (o primeiro argumento é o nome do servidor vinculado).


Exemplo 1 – Exemplo básico


Aqui está um exemplo.
SELECT * FROM OPENQUERY(
    Homer,
    'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];'
);

Resultado:
+-----------------------+
| Remote ProductLevel   |
|-----------------------|
| RTM                   |
+-----------------------+

Exemplo 2 – Comparado com uma consulta local


Apenas para confirmar que isso estava de fato vindo do servidor vinculado (e não do servidor local), aqui está novamente, junto com uma consulta no servidor local.
SELECT SERVERPROPERTY('ProductLevel') AS [Local ProductLevel];

SELECT * FROM OPENQUERY(
    Homer,
    'SELECT SERVERPROPERTY(''ProductLevel'') AS [Remote ProductLevel];'
);

Resultado:
+----------------------+
| Local ProductLevel   |
|----------------------|
| CTP3.2               |
+----------------------+
(1 row affected)
+-----------------------+
| Remote ProductLevel   |
|-----------------------|
| RTM                   |
+-----------------------+
(1 row affected)

Nesse caso, o servidor local está executando o SQL Server 2019 Preview e o servidor vinculado está executando o SQL Server 2017. RTM significa que é uma versão original, enquanto CTPn significa que é uma versão Community Technology Preview.

Consulte Script rápido que retorna todas as propriedades de SERVERPROPERTY() no SQL Server 2017/2019 se precisar de um script que retorne todas as propriedades.

Consulte também a documentação da Microsoft para obter uma lista completa de argumentos aceitos por esta função.