sql >> Database >  >> RDS >> Sqlserver

2 manieren om de servernaam in SQL Server (T-SQL) te retourneren

Hier zijn een aantal T-SQL-methoden die u kunt gebruiken om de servernaam in SQL Server te retourneren.

@@SERVERNAME

De @@SERVERNAME configuratiefunctie is speciaal ontworpen voor het retourneren van de naam van de lokale server waarop SQL Server wordt uitgevoerd.

Om de servernaam te krijgen, selecteert u deze eenvoudig met een SELECT verklaring.

SELECT @@SERVERNAME;

Resultaat op mijn systeem:

mssql2019_1

Dit vertelt me ​​dat mijn servernaam mssql2019_1 . is .

SERVERPROPERTY(Servernaam)

De SERVERPROPERTY() metadata-functie kan ook worden gebruikt om de servernaam te retourneren, evenals vele andere eigenschappen.

Om de servernaam terug te geven, moet u ServerName doorgeven als argument.

SELECT SERVERPROPERTY('ServerName');

Resultaat:

mssql2019_1

In mijn geval is het dezelfde output.

Verschil tussen deze twee functies

De twee bovenstaande functies produceren dezelfde output op mijn machine, maar het kan zijn dat ze iets andere output produceren op de jouwe.

De twee functies zijn vergelijkbaar, maar iets anders. Dit is het verschil:

  • @@SERVERNAME biedt de momenteel geconfigureerde lokale servernaam.
  • De ServerName eigenschap biedt de Windows-server en instantienaam die samen de unieke serverinstantie vormen.

Dus bijvoorbeeld op een Windows-systeem, als uw computernaam Felix . is , en uw SQL Server-instantie heet sql1 , met SERVERPROPERTY('ServerName') retourneert mogelijk Felix\sql1 .

De machinenaam en instantienaam

De SERVERPROPERTY() functie kan ook worden gebruikt om de machinenaam en de naam van de SQL Server-instantie te retourneren.

De resultaten die u krijgt, zijn echter afhankelijk van een aantal dingen (hieronder vermeld).

Dit is wat ik krijg op mijn Mac met SQL Server voor Linux via een Docker-container.

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

Resultaat:

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

Ten eerste, de MachineName eigenschap retourneert de machinenaam. De verklaring van Microsoft is dat het de Windows-computernaam retourneert waarop de serverinstantie wordt uitgevoerd.

Microsoft stelt ook dat "Voor een geclusterde instantie, een instantie van SQL Server die wordt uitgevoerd op een virtuele server op Microsoft Cluster Service, wordt de naam van de virtuele server geretourneerd".

Voor zover de InstanceName eigenschap gaat, retourneert het de naam van de instantie naar which de gebruiker is verbonden.

Het retourneert echter NULL als de instantienaam de standaardinstantie is, als de invoer niet geldig is, of fout.

In mijn geval is de instantienaam de standaardinstantie en kreeg ik NULL .


  1. Proactieve SQL Server Health Checks, Deel 5:Wachtstatistieken

  2. De lijst met onthouden aanmeldingen en wachtwoorden verwijderen in SQL Server Management Studio

  3. Maak de maand op in Romeinse cijfers in PostgreSQL

  4. CHECK-beperkingen in-/uitschakelen in SQLite