SQL Server のクエリ通知 (ADO.NET)

クエリ通知は、Microsoft SQL Server 2005、および ADO.NET 2.0 の System.Data.SqlClient 名前空間に導入されました。クエリ通知は Service Broker インフラストラクチャに基づいて構築されており、データが変更されたときにクエリ通知を使用してアプリケーションに通知できます。この機能は、Web アプリケーションなど、データベースから情報のキャッシュを提供し、ソース データが変更された場合に通知を必要とするアプリケーションに特に役立ちます。

ADO.NET を使用してクエリ通知機能を実装する方法は 3 つあります。

  1. 基本レベルの実装は、SqlNotificationRequest クラスによって行われます。これによってサーバー側の機能が公開され、通知要求を伴うコマンドを実行できます。

  2. 高レベルの実装は、SqlDependency クラスによって行われます。このクラスでは、ソース アプリケーションと SQL Server 間の通知機能が高度に抽象化され、その依存関係を使用してサーバー内の変更を検出することができます。マネージ クライアント アプリケーションが .NET Framework Data Provider for SQL Server を使用して SQL Server の通知機能を活用するには、ほとんどの場合、これが最も簡単かつ効果的な方法です。

  3. さらに、ASP.NET 2.0 以降を使用して構築された Web アプリケーションでは、SqlCacheDependency ヘルパー クラスを使用できます。

クエリ通知は、基になるデータの変更に応じて表示またはキャッシュを更新する必要があるアプリケーションで使用されます。Microsoft SQL Server では、最初に取得したものと異なる結果セットが同じコマンドで得られた場合には、.NET Framework アプリケーションから SQL Server にコマンドを送信して通知を要求することができます。サーバーで生成された通知は、キューを通じて送信された後に処理されます。

通知は SELECT ステートメントおよび EXECUTE ステートメントに対して設定できます。EXECUTE ステートメントを使用した場合、SQL Server では、EXECUTE ステートメント自体ではなく、EXECUTE ステートメントで実行されたコマンドに対する通知が登録されます。コマンドは、SELECT ステートメントの要件と制限を満たしている必要があります。通知を登録するコマンドに複数のステートメントが含まれている場合、データベース エンジンによりバッチ内のステートメントごとに通知が作成されます。

クエリ通知と SQL Server Service Broker の詳細については、次の SQL Server オンライン ブックのトピックへのリンクを参照してください。

SQL Server 2005 オンライン ブック

SQL Server 2008 オンライン ブック

クエリ通知機能の使用

クエリ通知機能の使用

クエリ通知の作成

クエリ通知の作成

Service Broker

Service Broker

Service Broker 開発者向けの情報

開発者ガイド (Service Broker)

このセクションの内容

参照

参照

その他の技術情報

SQL Server と ADO.NET