Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

2 façons de renvoyer le nom du serveur dans SQL Server (T-SQL)

Voici quelques méthodes T-SQL que vous pouvez utiliser pour renvoyer le nom du serveur dans SQL Server.

@@NOMSERVEUR

Le @@SERVERNAME La fonction de configuration est conçue spécifiquement pour renvoyer le nom du serveur local qui exécute SQL Server.

Pour obtenir le nom du serveur, il vous suffit de le sélectionner à l'aide d'un SELECT déclaration.

SELECT @@SERVERNAME;

Résultat sur mon système :

mssql2019_1

Cela me dit que le nom de mon serveur est mssql2019_1 .

SERVERPROPERTY(NomServeur)

Le SERVERPROPERTY() La fonction metadata peut également être utilisée pour renvoyer le nom du serveur, ainsi que de nombreuses autres propriétés.

Pour retourner le nom du serveur, vous devez passer ServerName comme argument.

SELECT SERVERPROPERTY('ServerName');

Résultat :

mssql2019_1

Dans mon cas, c'est la même sortie.

Différence entre ces deux fonctions

Les deux fonctions ci-dessus produisent la même sortie sur ma machine, mais vous constaterez peut-être qu'elles produisent une sortie légèrement différente sur la vôtre.

Les deux fonctions sont similaires, mais légèrement différentes. Voici la différence :

  • @@SERVERNAME fournit le nom du serveur local actuellement configuré.
  • Le ServerName La propriété fournit le serveur Windows et le nom de l'instance qui, ensemble, constituent l'instance de serveur unique.

Ainsi, par exemple, sur un système Windows, si le nom de votre ordinateur est Felix , et votre instance SQL Server s'appelle sql1 , exécutant SERVERPROPERTY('ServerName') peut renvoyer Felix\sql1 .

Le nom de la machine et le nom de l'instance

Le SERVERPROPERTY() La fonction peut également être utilisée pour renvoyer le nom de la machine ainsi que le nom de l'instance SQL Server.

Cependant, les résultats que vous obtiendrez dépendront de plusieurs facteurs (mentionnés ci-dessous).

Voici ce que j'obtiens sur mon Mac exécutant SQL Server pour Linux via un conteneur Docker.

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

Résultat :

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

Tout d'abord, le MachineName La propriété renvoie le nom de la machine. L'explication de Microsoft est qu'il renvoie le nom de l'ordinateur Windows sur lequel l'instance de serveur est en cours d'exécution.

Microsoft déclare également que "Pour une instance en cluster, une instance de SQL Server s'exécutant sur un serveur virtuel sur Microsoft Cluster Service, il renvoie le nom du serveur virtuel".

En ce qui concerne le InstanceName propriété va, elle renvoie le nom de l'instance à which l'utilisateur est connecté.

Cependant, il renvoie NULL si le nom de l'instance est l'instance par défaut, si l'entrée n'est pas valide ou erreur.

Dans mon cas, le nom de l'instance est l'instance par défaut et j'ai obtenu NULL .