Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

2 Möglichkeiten zur Rückgabe des Servernamens in SQL Server (T-SQL)

Hier sind ein paar T-SQL-Methoden, die Sie verwenden können, um den Servernamen in SQL Server zurückzugeben.

@@SERVERNAME

Der @@SERVERNAME Die Konfigurationsfunktion wurde speziell dafür entwickelt, den Namen des lokalen Servers zurückzugeben, auf dem SQL Server ausgeführt wird.

Um den Servernamen zu erhalten, wählen Sie ihn einfach mit einem SELECT aus Erklärung.

SELECT @@SERVERNAME;

Ergebnis auf meinem System:

mssql2019_1

Dies sagt mir, dass mein Servername mssql2019_1 ist .

SERVER-EIGENSCHAFT (Servername)

Die SERVERPROPERTY() metadata-Funktion kann auch verwendet werden, um den Servernamen sowie viele andere Eigenschaften zurückzugeben.

Um den Servernamen zurückzugeben, müssen Sie ServerName übergeben als Argument.

SELECT SERVERPROPERTY('ServerName');

Ergebnis:

mssql2019_1

In meinem Fall ist es die gleiche Ausgabe.

Unterschied zwischen diesen beiden Funktionen

Die beiden oben genannten Funktionen erzeugen auf meinem Computer dieselbe Ausgabe, aber Sie werden möglicherweise feststellen, dass sie auf Ihrem eine etwas andere Ausgabe erzeugen.

Die beiden Funktionen sind ähnlich, aber leicht unterschiedlich. Hier ist der Unterschied:

  • @@SERVERNAME liefert den aktuell konfigurierten lokalen Servernamen.
  • Der ServerName -Eigenschaft stellt den Windows-Server und den Instanznamen bereit, die zusammen die eindeutige Serverinstanz bilden.

Also zum Beispiel auf einem Windows-System, wenn Ihr Computername Felix ist , und Ihre SQL Server-Instanz heißt sql1 , indem Sie SERVERPROPERTY('ServerName') ausführen könnte Felix\sql1 zurückgeben .

Der Maschinenname und Instanzname

Die SERVERPROPERTY() -Funktion kann auch verwendet werden, um sowohl den Computernamen als auch den Namen der SQL Server-Instanz zurückzugeben.

Die Ergebnisse, die Sie erhalten, hängen jedoch von einigen Dingen ab (siehe unten).

Folgendes erhalte ich auf meinem Mac, auf dem SQL Server für Linux über einen Docker-Container ausgeführt wird.

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

Ergebnis:

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

Zuerst der MachineName Die Eigenschaft gibt den Maschinennamen zurück. Die Erklärung von Microsoft ist, dass es den Namen des Windows-Computers zurückgibt, auf dem die Serverinstanz läuft.

Microsoft gibt außerdem an, dass „für eine geclusterte Instanz, eine Instanz von SQL Server, die auf einem virtuellen Server im Microsoft Cluster Service ausgeführt wird, der Name des virtuellen Servers zurückgegeben wird“.

Soweit der InstanceName Eigenschaft geht, gibt sie den Namen der Instanz an which zurück der Benutzer ist verbunden.

Es gibt jedoch NULL zurück wenn der Instanzname die Standardinstanz ist, wenn die Eingabe ungültig ist oder ein Fehler auftritt.

In meinem Fall ist der Instanzname die Standardinstanz und ich habe NULL erhalten .