SQL Server Express LocalDB リファレンス - インスタンス API

適用対象:SQL Server

従来のサービスベースの SQL Server 環境で、単一のコンピューターにインストールされた個々の SQL Server インスタンスは、物理的に独立しています。つまり、各インスタンスは独立したバイナリ セットを持っており、独立したサービス プロセスの下で実行されます。インストールと削除も個別に行われる必要があります。 ユーザーが接続する先の SQL Server インスタンスは、SQL Server インスタンス名を使用して指定されます。

SQL Server Express LocalDB インスタンス API では、簡略化された "light" インスタンス モデルが使用されます。 個々の LocalDB インスタンスは、ディスク上とレジストリ内で独立していますが、同じ 1 組の共有 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 インスタンスは "プライベート" です。インスタンスは、インスタンスの作成と管理を担当する 1 つのアプリケーションによって所有されます。 名前付き LocalDB インスタンスを使用すると、そのインスタンスを分離することで、パフォーマンスの向上を図ることができます。

名前付きインスタンスの作成

名前付きインスタンスは、ユーザーが LocalDB 管理 API を通じて明示的に作成するか、マネージド アプリケーションの app.config ファイルを通じて暗黙的に作成する必要があります。 この API は、マネージド アプリケーションでも使用できます。

各名前付きインスタンスには、特定の LocalDB バージョンが関連付けらています。つまり、各名前付きインスタンスは、LocalDB バイナリの特定のセットを指しています。 名前付きインスタンスのバージョンは、インスタンス作成時に設定されます。

名前付きインスタンスの名前付け規則

LocalDB インスタンス名の合計は 128 文字までです ( 制限は sysname データ型によって課されます)。 これは、従来の SQL Server インスタンス名と比較すると、大きく異なります。従来は、16 の ASCII 文字で構成される NetBIOS 名に制限されていました。 この違いの理由は、LocalDB はデータベースをファイルとして扱うので、ファイルベースのセマンティクスを意味するため、ユーザーはインスタンス名をより自由に選択できます。

LocalDB のインスタンス名には、ファイル名コンポーネント内で有効な任意の Unicode 文字を使用できます。 ファイル名コンポーネントの無効な文字には、通常、ASCII/Unicode 文字 1 ~ 31、引用符 (")、より小さい ()、パイプ (<|)>、バックスペース (\b)、タブ (\t)、コロン (:)、アスタリスク (*)、疑問符 (?)、円記号 (\)、スラッシュ (/) などがあります。 null 文字 (\0) は、文字列の終端として許可されています。最初に検出された null 文字以降は、すべての文字が無視されます。

Note

無効な文字はオペレーティング システムによって異なり、今後のリリースで変わることもあります。

インスタンス名の先頭と末尾の空白は無視され、トリミングされます。

名前付けの競合を回避するために、名前付き 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 インスタンスの共有を停止する関数について説明します。