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

2 modi per restituire il nome del server in SQL Server (T-SQL)

Di seguito sono riportati un paio di metodi T-SQL che puoi utilizzare per restituire il nome del server in SQL Server.

@@SERVERNAME

Il @@SERVERNAME la funzione di configurazione è progettata specificamente per restituire il nome del server locale che esegue SQL Server.

Per ottenere il nome del server, è sufficiente selezionarlo utilizzando un SELECT dichiarazione.

SELECT @@SERVERNAME;

Risultato sul mio sistema:

mssql2019_1

Questo mi dice che il nome del mio server è mssql2019_1 .

PROPRIETÀSERVER(Nomeserver)

Il SERVERPROPERTY() la funzione dei metadati può essere utilizzata anche per restituire il nome del server, oltre a molte altre proprietà.

Per restituire il nome del server, devi passare ServerName come argomento.

SELECT SERVERPROPERTY('ServerName');

Risultato:

mssql2019_1

Nel mio caso, è lo stesso output.

Differenza tra queste due funzioni

Le due funzioni sopra producono lo stesso output sulla mia macchina, ma potresti scoprire che producono un output leggermente diverso sul tuo.

Le due funzioni sono simili, ma leggermente diverse. Ecco la differenza:

  • @@SERVERNAME fornisce il nome del server locale attualmente configurato.
  • Il ServerName fornisce il server Windows e il nome dell'istanza che insieme costituiscono l'istanza univoca del server.

Ad esempio, su un sistema Windows, se il nome del tuo computer è Felix e la tua istanza di SQL Server si chiama sql1 , eseguendo SERVERPROPERTY('ServerName') potrebbe restituire Felix\sql1 .

Il nome della macchina e il nome dell'istanza

Il SERVERPROPERTY() La funzione può essere utilizzata anche per restituire il nome della macchina e il nome dell'istanza di SQL Server.

Tuttavia, i risultati che otterrai dipenderanno da un paio di cose (menzionate di seguito).

Ecco cosa ottengo sul mio Mac con SQL Server per Linux tramite un contenitore Docker.

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

Risultato:

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

Innanzitutto, il MachineName la proprietà restituisce il nome della macchina. La spiegazione di Microsoft è che restituisce il nome del computer Windows su cui è in esecuzione l'istanza del server.

Microsoft afferma inoltre che "Per un'istanza cluster, un'istanza di SQL Server in esecuzione su un server virtuale su Microsoft Cluster Service, restituisce il nome del server virtuale".

Per quanto riguarda il InstanceName proprietà va, restituisce il nome dell'istanza a which l'utente è connesso.

Tuttavia, restituisce NULL se il nome dell'istanza è l'istanza predefinita, se l'input non è valido o errore.

Nel mio caso, il nome dell'istanza è l'istanza predefinita e ho ottenuto NULL .