sql >> Databáze >  >> RDS >> Sqlserver

Spusťte SERVERPROPERTY() proti propojenému serveru v SQL Server

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.


  1. Rychlý způsob generování zřetězených řetězců v Oracle

  2. Jaké jsou kroky v návrhu databáze?

  3. Syntaxe SQL ALTER TABLE – Zobrazuje DBMS

  4. Rozdělení logické replikace s PostgreSQL 13