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を取得しました 。