Ето няколко 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 .