1. ホーム
  2. c#

[解決済み] SQL Server のテーブルの変更を C# で監視するには?

2023-05-26 02:45:43

質問

同じDBにアクセスする複数のアプリケーションがあり、これらのアプリケーションの1つが特定のテーブルで何かを変更(更新、挿入)した場合に通知を受ける必要があります。

データベースとアプリは同じサーバーにありません。

どのように解決するのですか?

あなたは SqlDependency Class . その使用目的は、主にASP.NETのページ(クライアント通知の数が少ない)に使用されます。

ALTER DATABASE UrDb SET ENABLE_BROKER

を実装します。 OnChange イベントを実装し、通知を受けるようにします。

void OnChange(object sender, SqlNotificationEventArgs e)

そして、コードでは

SqlCommand cmd = ...
cmd.Notification = null;

SqlDependency dependency = new SqlDependency(cmd);

dependency.OnChange += OnChange;

これは Service Broker (メッセージベースのコミュニケーションプラットフォーム) を使ってデータベースエンジンからメッセージを受け取ります。