sql >> Base de Datos >  >> RDS >> Sqlserver

Ejecute SERVERPROPERTY() contra un servidor vinculado en SQL Server

Si necesita ejecutar SERVERPROPERTY() contra un servidor vinculado en SQL Server, puede usar una consulta de paso. Para hacer esto, pase SERVERPROPERTY() funcionan como el segundo argumento de OPENQUERY() función (el primer argumento es el nombre del servidor vinculado).

Ejemplo 1 – Ejemplo básico

He aquí un ejemplo.

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

Resultado:

+-----------------------+
| Remote ProductLevel   |
|-----------------------|
| RTM                   |
+-----------------------+

Ejemplo 2:Comparado con una consulta local

Solo para confirmar que esto en realidad provenía del servidor vinculado (y no del servidor local), aquí está nuevamente, junto con una consulta contra el 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)

En este caso, el servidor local ejecuta SQL Server 2019 Preview y el servidor vinculado ejecuta SQL Server 2017. RTM significa que es una versión de lanzamiento original, mientras que, CTPn significa que es una versión preliminar de tecnología comunitaria.

Consulte Script rápido que devuelve todas las propiedades de SERVERPROPERTY() en SQL Server 2017/2019 si necesita un script que devuelva todas las propiedades.

Consulte también la documentación de Microsoft para obtener una lista completa de los argumentos aceptados por esta función.