SQL Server 通知サービス
SQL は、要件に関連するメカニズムを提供する通知のサブスクリプションを提供します。
http://msdn.microsoft.com/en-us/library/ms172483(v=sql.90).aspx
注:SQL Server 2008 R2を使用しているという情報を後で提供したため、削除されました
との古いトリックSystem.IO.FileSystemWatcher
もう 1 つの方法は、単純なファイル タイムスタンプの変更を行う SQL トリガーをテーブルに作成することです。ファイル自体のサイズは 0 バイトなので、何も書き込まないため、操作が高速になります。
次に、すべてのクライアントがこのファイルの変更を監視し、変更が発生すると、ウォッチャーが変更イベントをトリガーし、クライアントは単にデータをリロードします。
CREATE TRIGGER DataChanged
ON YourTable
FOR INSERT, UPDATE, DELETE
AS
EXEC master..xsp_UpdateSignalFile 'YourTable.DataChanged'
この CLR ストアド プロシージャの考え方は、スケーラビリティを維持するためにできるだけ高速にすることです。負荷の高いデータサーバーの場合、外部プロセスを使用してファイルを更新することで最適化することもできます...
CLR ストアド プロシージャのコードは、実際には Web フォームに関連するこの MSDN 記事にありますが、この CLR プロシージャ以外は必要ありません。そして、システム全体がどのように機能するかの説明かもしれません。
クライアントは、System.IO.FileSystemWatcher
ネットワークの場所 (プロシージャがファイルを更新する場所) でファイルの変更を監視し、変更が発生したときにデータを更新するために を使用します。
ポーリングやデータ サーバーへの不要なリクエストを使用しない、シンプルで洗練されたトリックです。もちろん、それぞれが異なるファイルを変更するいくつかのテーブルにトリガーを設定できます。クライアントに表示しているフォームに応じて、フォームの存続期間中、その特定のファイルを監視します。ユーザーがコンテキストを別のデータに変更すると、クライアント アプリはファイル ウォッチャーを解放します (そして、別のファイルに必要な新しいものを作成します)。