適用対象:SQL Server
Microsoft SQL Server Express LocalDB は、開発者を対象とした SQL Server Express の機能です。 SQL Server 2025 (17.x) 以降のバージョンでは、LocalDB は SQL Server Express エディションに含まれています。 SQL Server 2022 (16.x) 以前のバージョンでは、LocalDB は Sql Server Express Edition と Advanced Services で使用できます。
LocalDB のインストールでは、SQL Server データベース エンジン の開始に最低限必要なファイルがコピーされます。 LocalDB がインストールされたら、特別な接続文字列を使用して接続を開始できます。 接続時に、必要な SQL Server インフラストラクチャが自動的に作成および開始されるため、複雑な構成タスクを行わなくてもアプリケーションでデータベースを使用できます。 開発者ツールによって、開発者は SQL Server データベース エンジンを使用して Transact-SQL コードを記述してテストすることができ、SQL Server の完全なサーバー インスタンスを管理する必要はありません。
インストール メディア
LocalDB は、SQL Server Express のインストール中に選択する機能で、メディアをダウンロードするときに使用できます。 SQL Server 2025 (17.x) 以降のバージョンの場合、 LocalDB は Express エディションのダウンロードに含まれています。 SQL Server 2022 (16.x) 以前のバージョンの場合、エディションは Express Advanced と呼ばれ、ダウンロード時に、そのパッケージまたはスタンドアロン LocalDB パッケージのいずれかを選択できます。
- SQL Server 2025 Express Edition
- SQL Server 2022 Express エディション
- SQL Server 2019 Express エディション
- SQL Server 2017 Express エディション
- SQL Server 2016 Express エディション
LocalDB インストーラー SqlLocalDB.msi は、Express Core を除くすべてのエディションのインストール メディアで利用できます。 これは、<installation_media_root>\<LCID>_ENU_LP\x64\Setup\x64 フォルダーにあります。 LCID はロケール識別子または言語コードです。 たとえば、LCID 値 1033 は en-US ロケールを参照します。
あるいは、データの保存と処理ワークロードや ASP.NET と Web 開発ワークロードの一部として、または個別のコンポーネントとして、Visual Studio インストーラーで LocalDB をインストールすることもできます。
LocalDB をインストールする
インストール ウィザードまたは SqlLocalDB.msi プログラムを使用して、LocalDB をインストールします。 LocalDB は SQL Server Express LocalDB をインストールするときのオプションです。
インストール時に [Feature Selection/Shared Features](機能の選択/共有機能) ページで [LocalDB] を選択します。 主要な SQL Server データベース エンジンのバージョンごとに LocalDB のバイナリ ファイルのインストールが 1 つだけ表示されます。 複数の データベース エンジン プロセスを開始することができ、すべてのプロセスが使用するバイナリは同じです。 LocalDB として開始された SQL Server データベース エンジン のインスタンスには、SQL Server Express と同じ制限があります。
SQL Server Express LocalDB のインスタンスは、SqlLocalDB.exe ユーティリティを使用して管理されます。 SQL Server Express ユーザー インターフェイス機能は非推奨であるため、代わりに SQL Server Express LocalDB を使用してください。
説明
LocalDB セットアップ プログラムでは、SqlLocalDB.msi プログラムを使用して、コンピューターに必要なファイルがインストールされます。 インストール後、LocalDB は SQL Server Express のインスタンスであり、SQL Server データベースを作成して開くことができます。 データベースのシステム データベース ファイルは、通常は非表示になっているローカル AppData パスに保存されます。 たとえば、%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\ のようにします。 ユーザー データベース ファイルは、ユーザーが指定する場所 (通常は %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\<InstanceName> フォルダー内の任意の場所) に格納されます。
LocalDB をアプリケーション内に組み込む手順の詳細については、Visual Studio の「ローカル データの概要」と「Visual Studio でデータベースを作成し、テーブルを追加する」を参照してください。
LocalDB API の詳細については、 SQL Server Express LocalDB リファレンスを参照してください。
SqlLocalDB ユーティリティを使用すると、LocalDB の新しいインスタンス作成、LocalDB インスタンスの起動と終了を行うことができ、LocalDB の管理に役立つオプションが含まれます。
SqlLocalDB ユーティリティの詳細については、「SqlLocalDB ユーティリティ」を参照してください。
LocalDB のインスタンスの照合順序は SQL_Latin1_General_CP1_CI_AS に設定されており、変更することはできません。 データベース レベル、列レベル、および式レベルの照合順序は正常にサポートされます。 包含データベースは、「tempdb」で定義されているメタデータおよび の照合順序ルールに従います。
制限
LocalDB は、SQL Server Management Studio を使用してリモートで管理することはできません。
LocalDB はマージ レプリケーションのサブスクライバーとして使用することはできません。
LocalDB では FILESTREAM がサポートされていません。
LocalDB では Service Broker に対してローカル キューのみが許可されます。
NT AUTHORITY\SYSTEMなどの組み込みのアカウントが所有する LocalDB のインスタンスには、Windows ファイル システムのリダイレクトのため管理の容易性の問題が生じることがあります。 代わりに、所有者として通常の Windows アカウントを使用してください。
自動インスタンスと名前付きインスタンス
LocalDB では、2 種類のインスタンス、自動インスタンスと名前付きインスタンスがサポートされています。 コンピューターの異なるユーザーが同じ名前のインスタンスを持つことができます。 各インスタンスは、独自のプロセスでそれぞれのユーザーとして実行されます。
自動インスタンス
LocalDB の自動インスタンスはパブリックです。 ユーザーのために自動的に作成および管理され、任意のアプリケーションから使用できます。 ユーザーのコンピューターにインストールされているどのバージョンの LocalDB についても、LocalDB の自動インスタンスが 1 つ存在します。 LocalDB の自動インスタンスを使用すると、シームレスなインスタンス管理を実行できます。 インスタンスを作成する必要はありません。それだけで動作します。 この機能により、アプリケーションのインストールと別のコンピューターへの移行が簡単になります。 対象コンピューターに指定バージョンの LocalDB がインストールされている場合、その対象コンピューターでも同じバージョンの LocalDB の自動インスタンスを使用できます。 LocalDB の自動インスタンスのインスタンス名には特殊なパターンがあり、これは予約済み名前空間に属します。 自動インスタンスにより、LocalDB の名前付きインスタンスとの名前の競合が防止されます。 自動インスタンスの名前は MSSQLLocalDB です。
名前付きインスタンス
LocalDB の名前付きインスタンスはプライベートです。 これらは、そのインスタンスの作成と管理を行う単一のアプリケーションによって所有されます。 名前付きインスタンスは他のインスタンスからの分離を可能にし、他のデータベース ユーザーとのリソースの競合を減らすことによってパフォーマンスを向上させることができます。 名前付きインスタンスを LocalDB 管理 API を通じて明示的に作成するか、管理対象アプリの app.config ファイルを通じて暗黙的に作成する必要があります (ただし、管理対象アプリでは必要に応じて API も使用できます)。 LocalDB の各名前付きインスタンスには、LocalDB バイナリの特定のセットを指す特定の LocalDB バージョンが関連付けられています。 LocalDB のインスタンス名は sysname データ型で、最大文字数は 128 文字です (このインスタンス名は、SQL Server の正規の名前付きインスタンスとは異なり、15 の ASCII 文字で構成される正規の NetBIOS 名に制限されることはありません)。LocalDB のインスタンス名には、ファイル名内で有効な任意の Unicode 文字を使用できます。 自動インスタンス名を使用する名前付きインスタンスは、自動インスタンスになります。
LocalDB の共有インスタンス
コンピューターの複数のユーザーが LocalDBの単一インスタンスに接続する必要のあるシナリオをサポートするために、LocalDB はインスタンス共有をサポートします。 インスタンスの所有者は、コンピューター上の他のユーザーに自分のインスタンスへの接続を許可することを選択できます。 LocalDB の自動インスタンスと名前付きインスタンスの両方を共有できます。 LocalDB のインスタンスを共有するには、ユーザーがその共有名 (別名) を選択します。 共有名はコンピューターのすべてのユーザーから参照できるため、この共有名はコンピューター上で一意である必要があります。 LocalDB のインスタンスの共有名は、LocalDB の名前付きインスタンスと同じ形式です。
コンピューターの管理者だけが、LocalDB の共有インスタンスを作成できます。 LocalDB の共有インスタンスは、管理者または LocalDB の共有インスタンスの所有者が共有解除できます。 LocalDB のインスタンスを共有および共有解除するには、LocalDB API の LocalDBShareInstance メソッドと LocalDBUnShareInstance メソッド、または SqlLocalDB ユーティリティの共有オプションと共有解除オプションを使用します。
LocalDB の起動および LocalDB への接続
このセクションでは、自動インスタンス、名前付きインスタンス、または共有インスタンスに接続する方法について説明します。
自動インスタンスへの接続
LocalDB を使用する最も簡単な方法は、接続文字列 Server=(localdb)\MSSQLLocalDB;Integrated Security=true を使用して、現在のユーザーが所有する自動インスタンスに接続することです。 ファイル名を使用して特定のデータベースに接続するには、Server=(LocalDB)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName=D:\Data\MyDB1.mdf のような接続文字列を使用して接続します。
注意
あるコンピューター上でユーザーが初めて LocalDB への接続を試みるときは、自動インスタンスを作成し、なおかつ開始する必要があります。 インスタンスの作成に時間がかかり、接続がタイムアウト メッセージで失敗する可能性があります。 この場合は、作成プロセスが完了するまで数秒待ってから再び接続します。
名前付きインスタンスの作成および接続
LocalDB では、自動インスタンスに加えて名前付きインスタンスもサポートされます。 LocalDB の名前付きインスタンスを作成、開始、および停止するには、SqlLocalDB.exe プログラムを使用します。
SqlLocalDB.exe の詳細については、「SqlLocalDB ユーティリティ」を参照してください。
REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1
前のコード サンプルの最後の行は、次の表のような情報を返します。
| カテゴリ | 値 |
|---|---|
| 名前 | LocalDBApp1 |
| バージョン | <Current version> |
| 共有名 | "" |
| 所有者 | <Your Windows user> |
| 自動作成 | No |
| State | Running |
| 前回の開始時刻 | <Date and time> |
| インスタンス パイプ名 | np:\\.\pipe\LOCALDB#F365A78E\tsql\query |
注意
アプリケーションが .NET Framework 4.0.2 より前のバージョンを使用している場合は、LocalDB の名前付きパイプに直接接続する必要があります。 インスタンス パイプ名の値は、LocalDB のインスタンスがリッスンしている名前付きパイプです。 インスタンス パイプ名の LOCALDB# の後の部分は、LocalDB のインスタンスが起動されるたびに変更されます。 SQL Server Management Studio を使用して LocalDB のインスタンスに接続するには、 [データベース エンジンへの接続] ダイアログ ボックスにある [サーバー名] ボックスにインスタンス パイプ名を入力します。 カスタム プログラムから LocalDB のインスタンスへの接続を確立するには、次のような接続文字列を使用します。SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");
LocalDB の共有インスタンスへの接続
LocalDB の共有インスタンスに接続するには、\.\ (円記号 + ドット + 円記号) を接続文字列に追加して、共有インスタンス用に予約されている名前空間を参照します。 たとえば、AppData という名前の LocalDB の共有インスタンスに接続するには、接続文字列の一部として (localdb)\.\AppData などの接続文字列を使用します。 自身のものではない LocalDB の共有インスタンスに接続するユーザーには、Windows 認証または SQL Server 認証ログインが必要です。
トラブルシューティング
LocalDB は、現在のユーザーのコンテキストで軽量インスタンスとして実行されます。つまり、ほとんどの問題は、サーバー レベルの構成ではなく、インスタンスの状態、ファイルのアクセス許可、またはバージョンの不一致に関連します。 次の手順は、最も一般的な LocalDB の問題を診断して解決するのに役立ちます。
最新バージョンにアップグレードする
LocalDB の一般的な問題の多くは、最新バージョンの SQL Server Express にアップグレードすることで解決されます。 [インストール メディア] セクションから最新バージョンをダウンロードし、LocalDB をインストールします。 新しいバージョンでは、既存の LocalDB バイナリが置き換えられ、既知の安定性と互換性の問題に対する修正が含まれています。
アップグレード後、更新されたバイナリを使用するためにインスタンスを削除して再作成します。
sqllocaldb stop MSSQLLocalDB
sqllocaldb delete MSSQLLocalDB
sqllocaldb create MSSQLLocalDB
sqllocaldb start MSSQLLocalDB
注意事項
インスタンスを削除すると、そのインスタンスに関連付けられているすべてのデータベースが削除されます。 削除する前に重要なデータをバックアップします。
インストールとインスタンスの状態を確認する
次のコマンドを実行して、LocalDB がインストールされていることを確認し、インスタンスの状態を確認します。
sqllocaldb info
sqllocaldb info MSSQLLocalDB
最初のコマンドでは、すべてのインスタンスが一覧表示されます。 2 番目のコマンドは、特定のインスタンスのバージョン、所有者、状態 (実行中または停止済み) を示しています。
sqllocaldbが認識されない場合、LocalDB がインストールされていないか、インストール パスがシステム PATH変数に含まれていない可能性があります。
実行されていないインスタンスを開始するには:
sqllocaldb start MSSQLLocalDB
エラー ログを確認する
LocalDB は、エラー ログをユーザーの AppData フォルダーに書き込みます。
%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB\error.log
このファイルをテキスト エディターで開き、特定のエラー メッセージ、スタートアップ エラー、または構成の問題を確認します。
アクセス許可
SQL Server Express LocalDB のインスタンスは、ユーザーが自分で使用するために作成するインスタンスです。 コンピューター上のすべてのユーザーは、LocalDB のインスタンスを使用してデータベースを作成したり、ユーザー プロファイルの下にファイルを格納したり、資格情報の下でプロセスを実行したりできます。 既定では、LocalDB のインスタンスにアクセスできるのは、その所有者に制限されます。 LocalDB に含まれるデータは、データベース ファイルに対するファイル システム アクセス権によって保護されます。 ユーザー データベース ファイルが共有の場所に格納されている場合、その場所へのファイル システム アクセス権を持つユーザーであればだれでも、所有する LocalDB のインスタンスを使用してデータベースを開くことができます。 データベース ファイルがユーザー データ フォルダーなどの保護された場所に格納されている場合は、そのユーザーおよびそのフォルダーにアクセスできる管理者だけがデータベースを開くことができます。 LocalDB ファイルを開くことができる LocalDB のインスタンスは、一度に 1 つのみです。
LocalDB は、常にユーザーのセキュリティ コンテキストで実行されます。 LocalDB は、ローカルの Administrators グループの資格情報を使用して実行されることはありません。 そのため、LocalDB インスタンスで使用されるすべてのデータベース ファイルは、ローカル管理者グループのメンバーシップを考慮することなく、所有するユーザーの Windows アカウントを使用してアクセスできる必要があります。