sql >> Database teknologi >  >> RDS >> Sqlserver

2 måder at returnere servernavnet på i SQL Server (T-SQL)

Her er et par T-SQL-metoder, du kan bruge til at returnere servernavnet i SQL Server.

@@SERVERNAVN

@@SERVERNAME konfigurationsfunktionen er designet specifikt til at returnere navnet på den lokale server, der kører SQL Server.

For at få servernavnet skal du blot vælge det ved hjælp af en SELECT erklæring.

SELECT @@SERVERNAME;

Resultat på mit system:

mssql2019_1

Dette fortæller mig, at mit servernavn er mssql2019_1 .

SERVERPROPERTY(Servernavn)

SERVERPROPERTY() Metadata-funktionen kan også bruges til at returnere servernavnet, såvel som mange andre egenskaber.

For at returnere servernavnet skal du sende ServerName som et argument.

SELECT SERVERPROPERTY('ServerName');

Resultat:

mssql2019_1

I mit tilfælde er det det samme output.

Forskellen mellem disse to funktioner

De to funktioner ovenfor producerer det samme output på min maskine, men du vil måske opleve, at de producerer lidt anderledes output på din.

De to funktioner er ens, men lidt forskellige. Her er forskellen:

  • @@SERVERNAVN giver det aktuelt konfigurerede lokale servernavn.
  • Servernavn egenskaben giver Windows-serveren og instansnavnet, der tilsammen udgør den unikke serverinstans.

Så for eksempel på et Windows-system, hvis dit computernavn er Felix , og din SQL Server-instans hedder sql1 , der kører SERVERPROPERTY('ServerName') kan returnere Felix\sql1 .

Maskinnavnet og instansnavnet

SERVERPROPERTY() funktionen kan også bruges til at returnere maskinnavnet såvel som SQL Server-forekomstnavnet.

De resultater, du får, vil dog afhænge af et par ting (nævnt nedenfor).

Her er, hvad jeg får på min Mac, der kører SQL Server til Linux via en Docker-beholder.

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

Resultat:

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

Først Maskinnavn egenskaben returnerer maskinnavnet. Microsofts forklaring er, at den returnerer Windows-computernavnet, som serverforekomsten kører på.

Microsoft udtaler også, at "For en klynget forekomst, en forekomst af SQL Server, der kører på en virtuel server på Microsoft Cluster Service, returnerer den navnet på den virtuelle server".

For så vidt angår InstanceName egenskaben går, returnerer den navnet på forekomsten til hvilken brugeren er tilsluttet.

Det returnerer dog NULL hvis forekomstnavnet er standardforekomsten, hvis inputtet ikke er gyldigt, eller fejl.

I mit tilfælde er instansnavnet standardinstansen, og jeg fik NULL .


  1. Implementering af SQL Server Performance Indicator for forespørgsler, lagrede procedurer og triggere

  2. mysql dynamisk forespørgsel i lagret procedure

  3. Sådan implementeres Percona Server til MySQL for høj tilgængelighed

  4. mysql_real_escape_string VS addslashes