Ето няколко T-SQL метода, които можете да използвате, за да върнете името на сървъра в SQL Server.
@@ИМЕ НА СЪРВЪР
@@SERVERNAME
Конфигурационната функция е проектирана специално за връщане на името на локалния сървър, който изпълнява SQL Server.
За да получите името на сървъра, просто го изберете с помощта на SELECT
изявление.
SELECT @@SERVERNAME;
Резултат в моята система:
mssql2019_1
Това ми казва, че името на сървъра ми е mssql2019_1
.
SERVERPROPERTY(ServerName)
SERVERPROPERTY()
функцията за метаданни може да се използва и за връщане на името на сървъра, както и много други свойства.
За да върнете името на сървъра, трябва да подадете ServerName
като аргумент.
SELECT SERVERPROPERTY('ServerName');
Резултат:
mssql2019_1
В моя случай това е същият изход.
Разлика между тези две функции
Двете функции по-горе произвеждат еднакъв изход на моята машина, но може да откриете, че те произвеждат малко по-различен изход на вашата.
Двете функции са сходни, но малко различни. Ето разликата:
@@SERVERNAME
предоставя текущо конфигурираното име на локален сървър.ServerName
свойството предоставя сървъра на Windows и името на екземпляра, които заедно съставляват уникалния сървърен екземпляр.
Така например в Windows система, ако името на вашия компютър е Felix
, а вашият екземпляр на SQL Server се нарича sql1
, изпълняващ SERVERPROPERTY('ServerName')
може да върне Felix\sql1
.
Името на машината и името на екземпляра
SERVERPROPERTY()
функцията може да се използва и за връщане на името на машината, както и на името на екземпляра на SQL Server.
Въпреки това резултатите, които ще получите, ще зависят от няколко неща (споменати по-долу).
Ето какво получавам на моя Mac, работещ с SQL Server за Linux чрез Docker контейнер.
SELECT
SERVERPROPERTY('MachineName') AS MachineName,
SERVERPROPERTY('InstanceName') AS InstanceName;
Резултат:
+---------------+----------------+ | MachineName | InstanceName | |---------------+----------------| | mssql2019_1 | NULL | +---------------+----------------+
Първо, MachineName
property връща името на машината. Обяснението на Microsoft е, че връща името на компютъра с Windows, на който се изпълнява сървърният екземпляр.
Microsoft също така заявява, че „За клъстерен екземпляр, екземпляр на SQL Server, работещ на виртуален сървър в Microsoft Cluster Service, той връща името на виртуалния сървър.
Що се отнася до InstanceName
свойството отива, връща името на екземпляра на which
потребителят е свързан.
Той обаче връща NULL
ако името на екземпляра е екземплярът по подразбиране, ако входът не е валиден или грешка.
В моя случай името на екземпляра е екземплярът по подразбиране и получих NULL
.