Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

2 maneiras de retornar o nome do servidor no SQL Server (T-SQL)


Aqui estão alguns métodos T-SQL que você pode usar para retornar o nome do servidor no SQL Server.

@@SERVERNAME


O @@SERVERNAME A função de configuração foi projetada especificamente para retornar o nome do servidor local que está executando o SQL Server.

Para obter o nome do servidor, basta selecioná-lo usando um SELECT demonstração.
SELECT @@SERVERNAME;

Resultado no meu sistema:
mssql2019_1

Isso me diz que o nome do meu servidor é mssql2019_1 .

SERVERPROPERTY(ServerName)


A SERVERPROPERTY() A função de metadados também pode ser usada para retornar o nome do servidor, bem como muitas outras propriedades.

Para retornar o nome do servidor, você precisa passar ServerName como argumento.
SELECT SERVERPROPERTY('ServerName');

Resultado:
mssql2019_1

No meu caso, é a mesma saída.

Diferença entre essas duas funções


As duas funções acima produzem a mesma saída na minha máquina, mas você pode descobrir que elas produzem uma saída ligeiramente diferente na sua.

As duas funções são semelhantes, mas ligeiramente diferentes. Aqui está a diferença:
  • @@SERVERNAME fornece o nome do servidor local atualmente configurado.
  • O ServerName fornece o servidor Windows e o nome da instância que juntos formam a instância do servidor exclusiva.

Por exemplo, em um sistema Windows, se o nome do seu computador for Felix , e sua instância do SQL Server é chamada de sql1 , executando SERVERPROPERTY('ServerName') pode retornar Felix\sql1 .

O nome da máquina e o nome da instância


A SERVERPROPERTY() A função também pode ser usada para retornar o nome da máquina, bem como o nome da instância do SQL Server.

No entanto, os resultados obtidos dependerão de algumas coisas (mencionadas abaixo).

Aqui está o que recebo no meu Mac executando o SQL Server para Linux por meio de um contêiner do Docker.
SELECT
  SERVERPROPERTY('MachineName') AS MachineName,
  SERVERPROPERTY('InstanceName') AS InstanceName;

Resultado:
+---------------+----------------+
 | MachineName   | InstanceName   |
 |---------------+----------------|
 | mssql2019_1   | NULL           |
 +---------------+----------------+ 

Primeiro, o MachineName propriedade retorna o nome da máquina. A explicação da Microsoft é que ela retorna o nome do computador Windows no qual a instância do servidor está sendo executada.

A Microsoft também afirma que “Para uma instância clusterizada, uma instância do SQL Server em execução em um servidor virtual no Microsoft Cluster Service, ele retorna o nome do servidor virtual”.

Até o InstanceName vai, ele retorna o nome da instância para which o usuário está conectado.

No entanto, ele retorna NULL se o nome da instância for a instância padrão, se a entrada não for válida ou erro.

No meu caso, o nome da instância é a instância padrão e obtive NULL .