SQLServerでサーバー名を返すために使用できるT-SQLメソッドをいくつか示します。
@@ SERVERNAME
@@SERVERNAME
構成関数は、SQLServerを実行しているローカルサーバーの名前を返すために特別に設計されています。
サーバー名を取得するには、SELECT
を使用してサーバー名を選択するだけです。 ステートメント。
SELECT @@SERVERNAME;
私のシステムでの結果:
mssql2019_1
これは、私のサーバー名がmssql2019_1
であることを示しています。 。
SERVERPROPERTY(ServerName)
SERVERPROPERTY()
メタデータ関数を使用して、サーバー名やその他の多くのプロパティを返すこともできます。
サーバー名を返すには、ServerName
を渡す必要があります 引数として。
SELECT SERVERPROPERTY('ServerName');
結果:
mssql2019_1
私の場合、同じ出力です。
これら2つの機能の違い
上記の2つの関数は、私のマシンでは同じ出力を生成しますが、あなたのマシンではわずかに異なる出力を生成する場合があります。
2つの機能は似ていますが、わずかに異なります。違いは次のとおりです:
-
@@SERVERNAME
現在構成されているローカルサーバー名を提供します。 -
ServerName
プロパティは、一意のサーバーインスタンスを構成するWindowsサーバーとインスタンス名を提供します。
たとえば、Windowsシステムでは、コンピュータ名がFelix
の場合 、SQLServerインスタンスはsql1
と呼ばれます 、SERVERPROPERTY('ServerName')
を実行しています Felix\sql1
を返す場合があります 。
マシン名とインスタンス名
SERVERPROPERTY()
関数を使用して、マシン名とSQLServerインスタンス名を返すこともできます。
ただし、得られる結果はいくつかの点によって異なります(以下で説明します)。
これが、Dockerコンテナを介してLinux用SQLServerを実行しているMacで得られるものです。
SELECT
SERVERPROPERTY('MachineName') AS MachineName,
SERVERPROPERTY('InstanceName') AS InstanceName;
結果:
+---------------+----------------+ | MachineName | InstanceName | |---------------+----------------| | mssql2019_1 | NULL | +---------------+----------------+
まず、MachineName
プロパティはマシン名を返します。 Microsoftの説明によると、サーバーインスタンスが実行されているWindowsコンピューター名が返されます。
Microsoftはまた、「クラスター化されたインスタンスの場合、Microsoft ClusterService上の仮想サーバーで実行されているSQLServerのインスタンスの場合、仮想サーバーの名前を返します」と述べています。
InstanceName
まで プロパティが移動すると、インスタンスの名前がwhich
に返されます。 ユーザーが接続されています。
ただし、NULL
を返します インスタンス名がデフォルトのインスタンスである場合、入力が無効である場合、またはエラー。
私の場合、インスタンス名がデフォルトのインスタンスであり、NULL
を取得しました 。