次の方法で共有


データベースのロックおよびロック解除 (XMLA)

データベースのロックとロック解除は、それぞれ XML for Analysis (XMLA) の [ロック ] コマンドと [ロック解除] コマンドを使用して行うことができます。 通常、他の XMLA コマンドは、実行時にコマンドを完了させる必要に応じて、自動的にオブジェクトをロック/ロック解除します。 1 つのデータベースを明示的にロックまたはロック解除して、 Batch コマンドなどの 1 つのトランザクション内で複数のコマンドを実行し、他のアプリケーションがデータベースに書き込みトランザクションをコミットできないようにすることができます。

データベースのロック

Lock コマンドは、現在アクティブなトランザクションのコンテキスト内で、共有または排他的に使用するためにオブジェクトをロックします。 オブジェクトをロックすると、そのロックが解除されるまでトランザクションはコミットできません。 Microsoft SQL Server SQL Server Analysis Services では、共有ロックと排他ロックの 2 種類のロックがサポートされています。 SQL Server Analysis Servicesでサポートされるロックの種類の詳細については、「Mode 要素 (XMLA)」を参照してください。

SQL Server Analysis Servicesでは、データベースのみをロックできます。 Object 要素には、SQL Server Analysis Services データベースへのオブジェクト参照が含まれている必要があります。 Object 要素が指定されていない場合、または Object 要素がデータベース以外のオブジェクトを参照している場合は、エラーが発生します。

重要

Lock コマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。

その他のコマンドは、SQL Server Analysis Services データベースに対して Lock コマンドを暗黙的に発行します。 Discover メソッドやステートメント コマンドを実行する Execute メソッドなど、データベースからデータまたはメタデータを読み取る操作は、データベースに対して暗黙的に共有ロックを発行します。 Alter コマンドを実行する Execute メソッドなど、SQL Server Analysis Services データベース上のオブジェクトにデータまたはメタデータの変更をコミットするトランザクションは、データベースに対して排他的ロックを暗黙的に発行します。

データベースのロック解除

Unlock コマンドは、現在アクティブなトランザクションのコンテキスト内で確立されたロックを解除します。

重要

Unlock コマンドを明示的に発行できるのは、データベース管理者またはサーバー管理者だけです。

すべてのロックは、現在のトランザクションのコンテキスト内で保持されます。 現在のトランザクションがコミットまたはロールバックされると、そのトランザクション内で定義されたすべてのロックは自動的に解放されます。

参照

Lock 要素 (XMLA)
Unlock 要素 (XMLA)
Analysis Services での XMLA による開発