SQL Serverのデータベースインスタンス名を取得する方法:@@SERVERNAME、sys.servers、WMI、SSMS、環境変数など

2024-04-06

SQL Serverの現在のデータベースインスタンスの名前を照会する方法

方法1:@@SERVERNAMEを使用する

Transact-SQL

SELECT @@SERVERNAME;

PowerShell

$server = Get-Service -Name MSSQLSERVER
$server.DisplayName

方法2:sys.serversを使用する

SELECT name
FROM sys.servers
WHERE is_current = 1;

方法3:WMIを使用する

Get-CimInstance -ClassName Win32_ComputerSystem -Property Name

方法4:SQL Server Management Studioを使用する

  1. オブジェクトエクスプローラーで、サーバー ノードを展開します。
  2. データベースエンジン ノードを右クリックし、プロパティ を選択します。
  3. 接続 ページで、サーバー名 の値を確認します。
$env:COMPUTERNAME

コマンドプロンプト

echo %COMPUTERNAME%

方法の比較

方法利点欠点
@@SERVERNAMEシンプルで使いやすいデフォルトインスタンスのみ
sys.serversすべてのインスタンスを取得できる少し複雑
WMIスクリプトから使いやすい複雑な構文
SSMSGUIで直感的に操作できるSSMSをインストールする必要がある
環境変数非常にシンプルデフォルトインスタンスのみ
  • デフォルトインスタンスの名前を取得する場合は、@@SERVERNAME または環境変数を使用するのが最も簡単です。
  • すべてのインスタンスの名前を取得する場合は、sys.servers を使用するのが最善です。
  • スクリプトから名前を取得する場合は、PowerShell と WMI を使用できます。
  • GUI で操作したい場合は、SSMS を使用するのが便利です。



SELECT @@SERVERNAME;
$server = Get-Service -Name MSSQLSERVER
$server.DisplayName
SELECT name
FROM sys.servers
WHERE is_current = 1;
Get-CimInstance -ClassName Win32_ComputerSystem -Property Name
$env:COMPUTERNAME
echo %COMPUTERNAME%

注: これらのサンプルコードは、SQL Server 2017 で動作確認しています。他のバージョンの SQL Server では、構文が異なる場合があります。




方法6:HOST_NAME() 関数を使用する

SELECT HOST_NAME();

方法7:sys.dm_exec_connections DMV を使用する

SELECT session_id,
       database_name,
       client_net_address,
       client_hostname
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

方法8:xp_msver を使用する

EXEC xp_msver;

方法9:レジストリを使用する

レジストリエディタ

  1. レジストリエディタを開きます。
  2. 次のキーに移動します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer
  1. CurrentInstance の値を確認します。

方法10:.Net Framework を使用する

C#

using System;
using System.Data.SqlClient;

public class Program
{
    public static void Main(string[] args)
    {
        using (var connection = new SqlConnection("server=localhost;integrated security=True;"))
        {
            connection.Open();

            var cmd = new SqlCommand("SELECT @@SERVERNAME;", connection);
            var serverName = (string)cmd.ExecuteScalar();

            Console.WriteLine(serverName);
        }
    }
}

sql sql-server database


ASP.NET Web アプリケーションで画像を効率的に管理する方法

ASP. NET Web アプリケーションで画像を扱う場合、ファイルとして保存するか、データベース(MSSQL など)に保存するかを選択する必要があります。 どちらの方法にもメリットとデメリットがあり、最適な方法は要件によって異なります。ファイル保存...


MySQLデータベースにおけるユーザーの存在確認と削除:手順と注意事項

このチュートリアルでは、MySQLデータベース上でユーザーが存在するかどうかを確認し、存在する場合は削除する方法について説明します。前提条件MySQLサーバーがインストールおよび実行されている管理者権限を持つユーザーでMySQLにログインできる...


知らなかったでは済まされない!MySQLデータベーステーブルの最大レコード数制限の落とし穴

MySQLデータベーステーブルの最大レコード数は、いくつかの要因によって決まります。ストレージエンジン: InnoDB、MyISAM、Memoryなど、MySQLには様々なストレージエンジンがあります。各ストレージエンジンは、テーブルサイズや行サイズに関する独自の制限を持っています。...


SQL Server 2008/2017/2019: テーブル名、列名、プロシージャ名の長さ制限を一挙公開!

SQL Server におけるオブジェクト名 (テーブル名、列名、ストアド プロシージャ名など) の最大許容文字数は、バージョンによって異なります。詳細補足事項上記の文字数は、すべて UTF-8 エンコーディングで計算されます。オブジェクト名は、大文字と小文字を区別します。...


VARBINARY(MAX) とは?分かりやすく解説!SQL、MariaDB、プログラミング初心者向け

バイナリデータ とは、文字ではなく、0 と 1 のビット列で表現されるデータです。画像、動画、音声ファイル、実行ファイルなどがバイナリデータの例です。VARBINARY(MAX) は、以下の特徴を持ちます。可変長: データの長さに制限がなく、最大 2GB までのデータを格納することができます。...


SQL SQL SQL SQL Amazon で見る



【初心者向け】SQL Serverインスタンス名をT-SQLで簡単取得

方法1:@@SERVER_NAMEシステム変数を使用する最も簡単なのは、@@SERVER_NAMEシステム変数を使用する方法です。この変数は、現在接続しているSQL Serverインスタンスの名前を返します。方法2:HOST_NAME()関数を使用する