sql >> Base de Datos >  >> RDS >> Sqlserver

2 formas de devolver el nombre del servidor en SQL Server (T-SQL)

Aquí hay un par de métodos T-SQL que puede usar para devolver el nombre del servidor en SQL Server.

@@NOMBRE DEL SERVIDOR

El @@SERVERNAME La función de configuración está diseñada específicamente para devolver el nombre del servidor local que ejecuta SQL Server.

Para obtener el nombre del servidor, simplemente selecciónelo con SELECT declaración.

SELECT @@SERVERNAME;

Resultado en mi sistema:

mssql2019_1

Esto me dice que el nombre de mi servidor es mssql2019_1 .

PROPIEDAD DEL SERVIDOR(NombreServidor)

La SERVERPROPERTY() La función de metadatos también se puede usar para devolver el nombre del servidor, así como muchas otras propiedades.

Para devolver el nombre del servidor, debe pasar ServerName como argumento.

SELECT SERVERPROPERTY('ServerName');

Resultado:

mssql2019_1

En mi caso, es la misma salida.

Diferencia entre estas dos funciones

Las dos funciones anteriores producen la misma salida en mi máquina, pero es posible que produzcan una salida ligeramente diferente en la suya.

Las dos funciones son similares, pero ligeramente diferentes. Aquí está la diferencia:

  • @@SERVERNAME proporciona el nombre del servidor local actualmente configurado.
  • El ServerName La propiedad proporciona el servidor de Windows y el nombre de la instancia que, en conjunto, conforman la instancia de servidor única.

Entonces, por ejemplo, en un sistema Windows, si el nombre de su computadora es Felix y su instancia de SQL Server se llama sql1 , ejecutando SERVERPROPERTY('ServerName') podría devolver Felix\sql1 .

El nombre de la máquina y el nombre de la instancia

La SERVERPROPERTY() La función también se puede usar para devolver el nombre de la máquina, así como el nombre de la instancia de SQL Server.

Sin embargo, los resultados que obtenga dependerán de un par de cosas (mencionadas a continuación).

Esto es lo que obtengo en mi Mac con SQL Server para Linux a través de un contenedor Docker.

SELECT
  SERVERPROPERTY('MachineName') AS MachineName,
  SERVERPROPERTY('InstanceName') AS InstanceName;

Resultado:

+---------------+----------------+
 | MachineName   | InstanceName   |
 |---------------+----------------|
 | mssql2019_1   | NULL           |
 +---------------+----------------+ 

Primero, el MachineName La propiedad devuelve el nombre de la máquina. La explicación de Microsoft es que devuelve el nombre de la computadora de Windows en la que se ejecuta la instancia del servidor.

Microsoft también afirma que "Para una instancia en clúster, una instancia de SQL Server que se ejecuta en un servidor virtual en Microsoft Cluster Service, devuelve el nombre del servidor virtual".

En cuanto al InstanceName propiedad va, devuelve el nombre de la instancia a which el usuario está conectado.

Sin embargo, devuelve NULL si el nombre de la instancia es la instancia predeterminada, si la entrada no es válida o error.

En mi caso, el nombre de la instancia es la instancia predeterminada y obtuve NULL .