Ако трябва да стартирате SERVERPROPERTY()
функция срещу свързан сървър в SQL Server, можете да използвате преходна заявка. За да направите това, предайте SERVERPROPERTY()
функция като втори аргумент на OPENQUERY()
функция (първият аргумент е името на свързания сървър).
Пример 1 – Основен пример
Ето един пример.
SELECT * FROM OPENQUERY( Homer, 'ИЗБЕРЕТЕ SERVERPROPERTY(''ProductLevel'') КАТО [Remote ProductLevel];');
Резултат:
<пред>+-----------------------+| Дистанционно ниво на продукт ||-----------------------|| RTM |+-----------------------+Пример 2 – В сравнение с локална заявка
Само за да потвърдим, че това всъщност идва от свързания сървър (а не от локалния сървър), ето го отново заедно със заявка към локалния сървър.
ИЗБЕРЕТЕ SERVERPROPERTY('ProductLevel') КАТО [Local ProductLevel];SELECT * FROM OPENQUERY( Homer, 'SELECT SERVERPROPERTY(''ProductLevel') AS [Remote ProductLevel];');
Резултат:
+---------------------+| Местно ниво на продукта ||---------------------|| CTP3.2 |+---------------------+(1 ред засегнат)+---------------- -------+| Дистанционно ниво на продукт ||-----------------------|| RTM |+-----------------------+(1 ред засегнат)
В този случай локалният сървър изпълнява SQL Server 2019 Preview, а свързаният сървър изпълнява SQL Server 2017. RTM означава, че е оригинална версия на изданието, докато CTPn означава, че е версия за предварителен преглед на технологиите на общността.
Вижте Бърз скрипт, който връща всички свойства от SERVERPROPERTY() в SQL Server 2017/2019, ако имате нужда от скрипт, който връща всички свойства.
Вижте също документацията на Microsoft за пълен списък с аргументи, приети от тази функция.