SQL Server Express LocalDB インスタンス API

適用対象:SQL Server

従来のサービス ベースの SQL Server の世界では、1 台のコンピューターにインストールされている個々の SQL Server インスタンスが物理的に分離されています。 各インスタンスを個別にインストールおよび削除し、個別のバイナリ セットを持ち、個別のサービス プロセスで実行する必要があります。 ユーザーが接続する先の SQL Server インスタンスは、SQL Server インスタンス名を使用して指定されます。

SQL Server Express LocalDB インスタンス API では、簡略化された簡易インスタンス モデルが使用されます。 個々の LocalDB インスタンスは、ディスク上とレジストリ内で独立していますが、同じ 1 組の共有 LocalDB バイナリを使用します。 さらに、LocalDB ではサービスは使用されません。 LocalDB インスタンスは、LocalDB インスタンス API 呼び出しを通じてオンデマンドで起動されます。 LocalDB では、ユーザーが使用する LocalDB インスタンスを指定するために、インスタンス名が使用されます。

LocalDB インスタンスは常に 1 人のユーザーによって所有され、インスタンス共有が有効になっていない限り、このユーザーのコンテキストからのみ表示およびアクセスできます。

技術的には LocalDB インスタンスは従来の SQL Server インスタンスと同じではありませんが、使用目的は似ています。 この類似性を強調し、SQL Serverユーザーにとって直感的にするためにインスタンスと呼ばれています。

LocalDB では、自動インスタンス (AI) と名前付きインスタンス (NI) という 2 種類のインスタンスがサポートされています。 LocalDB インスタンスの識別子は、インスタンス名です。

自動 LocalDB インスタンス

自動LocalDBインスタンスは 公開されています。これらはユーザー向けに自動的に作成・管理され、どのアプリケーションでも使用できます。 ユーザーのコンピューターにインストールされている LocalDB のすべてのバージョンに対して、1 つの自動 LocalDB インスタンスが存在します。 自動インスタンスの名称は MSSQLLocalDBです。

自動 LocalDB インスタンスを使用すると、シームレスなインスタンス管理を実行できます。 ユーザーはインスタンスを作成する必要はありません。 これにより、ユーザーはアプリケーションのインストールや、複数の異なるコンピューターへの移行を容易に行うことができます。 ターゲット コンピューターに指定バージョンの LocalDB がインストールされている場合、そのコンピューターでは、同じバージョンの自動 LocalDB インスタンスも使用できます。

インスタンスの自動管理

ユーザーは、自動 LocalDB インスタンスを作成する必要はありません。 指定したバージョンの LocalDB がユーザーのコンピューターで使用できる限り、インスタンスはインスタンスが初めて使用されるときに遅延して作成されます。 LocalDB バイナリが存在する場合、ユーザーの観点からは、自動インスタンスは常に存在します。

自動インスタンスには、削除、共有、共有解除など、その他のインスタンス管理操作も使用できます。 特に、自動インスタンスを削除すると、インスタンスが実質的にリセットされ、次の開始操作で再作成されます。 システム データベースが破損した場合は、自動インスタンスの削除が必要になる場合があります。

名前付き LocalDB インスタンス

名前付きLocalDBインスタンスは プライベートです。インスタンスは、インスタンスの作成と管理を担当する単一のアプリケーションによって所有されます。 名前付き LocalDB インスタンスを使用すると、そのインスタンスを分離することで、パフォーマンスの向上を図ることができます。

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

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

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

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

LocalDBのインスタンス名は最大128文字まで持つことができます( sysname のデータ型がこの制限を課します)。 この制限は、NetBIOSのインスタンス名が15文字のASCIIに制限されている従来のSQL Serverインスタンス名と比べて大きな違いです。 この違いの理由は、LocalDBがデータベースをファイルとして扱うため、ファイルベースの意味論を含意しているため、ユーザーはインスタンス名の選択により自由度が高いためです。

LocalDB のインスタンス名には、ファイル名コンポーネント内で有効な任意の Unicode 文字を使用できます。 ファイル名コンポーネント内の無効な文字には、通常、次の文字が含まれます: ASCII/Unicode 文字 1 から 31、 および引用符 (")、より小さい (<)、より大きい (>)、パイプ (|)、バックスペース (\b)、タブ (\t)、コロン (:)、アスタリスク (*)、疑問符 (?)、バックスラッシュ (\)、およびスラッシュ (/)。 文字列の終了に使用されるため、null 文字 (\0) は許可されます。最初の null 文字の後のすべての文字は無視されます。

Note

無効な文字の一覧はオペレーティング システムによって異なっており、今後のリリースで変更される可能性があります。

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

名前の衝突を避けるため、名前付きLocalDBインスタンスは予約済みの自動インスタンス名 MSSQLLocalDBを使えません。 その名前で名前付きインスタンスを作成しようとすると、実質的にデフォルトインスタンスが作成されます。

Article Description
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 Function 指定された LocalDB インスタンスの共有を停止する関数について説明します。