従来のサービス ベースの SQL Server の世界では、1 台のコンピューターにインストールされている個々の SQL Server インスタンスが物理的に分離されています。つまり、各インスタンスを個別にインストールおよび削除し、個別のバイナリ セットを持ち、個別のサービス プロセスで実行する必要があります。 SQL Server インスタンス名は、ユーザーが接続する SQL Server インスタンスを指定するために使用されます。
SQL Server Express LocalDB インスタンス API では、簡略化された "簡易" インスタンス モデルが使用されます。 個々の LocalDB インスタンスはディスクとレジストリで分離されますが、同じ一連の共有 LocalDB バイナリを使用します。 さらに、LocalDB はサービスを使用しません。LocalDB インスタンスは、LocalDB インスタンス API 呼び出しを通じてオンデマンドで起動されます。 LocalDB では、インスタンス名を使用して、ユーザーが操作する LocalDB インスタンスを指定します。
LocalDB インスタンスは常に 1 人のユーザーによって所有され、インスタンス共有が有効になっていない限り、このユーザーのコンテキストからのみ表示およびアクセスできます。
技術的には LocalDB インスタンスは従来の SQL Server インスタンスと同じではありませんが、使用目的は似ています。 これらは インスタンス と呼ばれ、この類似性を強調し、SQL Server ユーザーに対してより直感的になります。
LocalDB では、自動インスタンス (AI) と名前付きインスタンス (NI) の 2 種類のインスタンスがサポートされています。 LocalDB インスタンスの識別子はインスタンス名です。
自動 LocalDB インスタンス
LocalDB の自動インスタンスは "public" です。ユーザーに対して自動的に作成および管理され、任意のアプリケーションで使用できます。 ユーザーのコンピューターにインストールされている LocalDB のすべてのバージョンに対して、1 つの自動 LocalDB インスタンスが存在します。
自動 LocalDB インスタンスは、シームレスなインスタンス管理を提供します。 ユーザーはインスタンスを作成する必要はありません。 これにより、ユーザーは簡単にアプリケーションをインストールし、別のコンピューターに移行できます。 ターゲット コンピューターに指定したバージョンの LocalDB がインストールされている場合は、そのバージョンの自動 LocalDB インスタンスもそのコンピューターで使用できます。
インスタンスの自動管理
ユーザーは、自動 LocalDB インスタンスを作成する必要はありません。 指定したバージョンの LocalDB がユーザーのコンピューターで使用できる場合、インスタンスはインスタンスが初めて使用されるときに遅延して作成されます。 LocalDB バイナリが存在する場合、ユーザーの観点からは、自動インスタンスは常に存在します。
削除、共有、共有解除などの他のインスタンス管理操作も、自動インスタンスに対して機能します。 特に、自動インスタンスを削除すると、インスタンスが実質的にリセットされ、次回の開始操作で再作成されます。 システム データベースが破損した場合は、自動インスタンスの削除が必要になる場合があります。
インスタンスの自動名前付け規則
自動 LocalDB インスタンスには、予約済み名前空間に属するインスタンス名の特別なパターンがあります。 これは、名前付き LocalDB インスタンスとの名前の競合を防ぐために必要です。
自動インスタンス名は、LocalDB ベースライン リリース バージョン番号の前に 1 つの "v" 文字が付けられます。 これは、"v" と 2 つの数値の間にピリオドが付いているように見えます。たとえば、v11.0 や V12.00 などです。
無効な自動インスタンス名の例を次に示します。
11.0 (先頭に "v" 文字がありません)
v11 (ピリオドとバージョンの 2 番目の番号がない)
v11。 (バージョンの 2 番目の番号がありません)
v11.0.1.2 (バージョン番号には 2 つ以上の部分があります)
名前付き LocalDB インスタンス
名前付き LocalDB インスタンスは "private" です。インスタンスは、インスタンスの作成と管理を担当する単一のアプリケーションによって所有されます。 名前付き LocalDB インスタンスは、分離を提供し、パフォーマンスを向上させます。
名前付きインスタンスの作成
ユーザーは、LocalDB 管理 API を使用して明示的に、またはマネージド アプリケーションの app.config ファイルを使用して暗黙的に名前付きインスタンスを作成する必要があります。 マネージド アプリケーションでは、API を使用することもできます。
各名前付きインスタンスには、LocalDB バージョンが関連付けられています。つまり、LocalDB バイナリの指定されたセットを指します。 名前付きインスタンスのバージョンは、インスタンスの作成プロセス中に設定されます。
名前付きインスタンスの名前付け規則
LocalDB インスタンス名には、合計 128 文字まで指定できます (制限は sysname データ型によって適用されます)。 これは、16 文字の ASCII 文字の NetBIOS 名に制限されている従来の SQL Server インスタンス名と比べて大きな違いです。 この違いの理由は、LocalDB ではデータベースがファイルとして扱われるため、ファイルベースのセマンティクスを意味するため、ユーザーはインスタンス名を自由に選択できます。
LocalDB インスタンス名には、ファイル名コンポーネント内で有効な任意の Unicode 文字を含めることができます。 ファイル名コンポーネントの無効な文字には、通常、ASCII/Unicode 文字 1 から 31、引用符 (")、より小さい (<)、より大きい (>)、パイプ (|)、バックスペース (\b)、タブ (\t)、コロン (:)、アスタリスク (*)、疑問符 (?)、円記号 (\)、およびスラッシュ (/) が含まれます。 文字列の終了に使用されるため、null 文字 (\0) を使用できます。最初の null 文字の後にあるものはすべて無視されます。
注
無効な文字の一覧はオペレーティング システムによって異なっており、今後のリリースで変更される可能性があります。
インスタンス名の先頭と末尾の空白は無視され、トリミングされます。
名前付けの競合を回避するために、「自動インスタンスの名前付け規則」で前述したように、名前付けされた LocalDB インスタンスに、自動インスタンスの名前付けパターンに従う名前を付けることはできません。自動インスタンスの名前付けパターンに従う名前を持つ名前付きインスタンスを作成しようとすると、実質的に既定のインスタンスが作成されます。
SQL Server Express LocalDB リファレンス トピック
SQL Server Express LocalDB ヘッダーとバージョン情報
LocalDB インスタンス API を検索するためのヘッダー ファイル情報とレジストリ キーを提供します。
コマンド ライン管理ツール: SqlLocalDB.exe
コマンド ラインから LocalDB インスタンスを管理するためのツールである SqlLocalDB.exeについて説明します。
LocalDBCreateInstance 関数
新しい LocalDB インスタンスを作成する関数について説明します。
LocalDBDeleteInstance 関数
LocalDB インスタンスを削除する関数について説明します。
LocalDBFormatMessage 関数
LocalDB エラーのローカライズされた説明を返す関数について説明します。
LocalDBGetInstanceInfo 関数
LocalDB インスタンスの情報 (存在するかどうか、バージョン情報、実行中かどうかなど) を取得する関数について説明します。
LocalDBGetInstances 関数
指定したバージョンのすべての LocalDB インスタンスを返す関数について説明します。
LocalDBGetVersionInfo 関数
指定した LocalDB バージョンの情報を返す関数について説明します。
LocalDBGetVersions 関数
コンピューターで使用可能なすべての LocalDB バージョンを返す関数について説明します。
LocalDBShareInstance 関数
指定した LocalDB インスタンスを共有する関数について説明します。
LocalDBStartInstance 関数
指定した LocalDB インスタンスを開始する関数について説明します。
LocalDBStartTracing 関数
ユーザーの API トレースを有効にする関数について説明します。
LocalDBStopInstance 関数
指定した LocalDB インスタンスの実行を停止する関数について説明します。
LocalDBStopTracing 関数
ユーザーの API トレースを無効にする関数について説明します。
LocalDBUnshareInstance 関数
指定した LocalDB インスタンスの共有を停止する関数について説明します。