SQL依存関係イベント(SQL 2008)を作成した他の誰かのコードで作業する。私はひどく馴染んでいませんでしたので、いくつかの読書といくつかのテストをしていました。データベース変更時にSQL依存関係イベントが発生するが、テーブル変更には反映されない
イベントはCustomerServicesTable_OnChangeと呼ばれ、おそらくcustomerServicesテーブルが変更されたときに発生することになります。しかし、DBをコード(Entity Frameworkを使用しています)で変更すると、イベントは発生しません。
私はSQL Server Managerを起動し、テーブルに対して直接クエリを実行して何が起こるかを調べました。表に対してUPDATE、INSERTまたはALTER問合せを実行しても、イベントは発生しませんでした。そのSQLの依存関係を確認するには
は、私は、データベースに対して、次のコマンドを実行したサービスを実現する上でおそらく最初のステップ有効化されていた:これらのコマンドを実行している驚いたことに
ALTER DATABASE customers SET SINGLE_USER with rollback immediate
alter database customers set enable_broker
ALTER DATABASE customers SET MULTI_USER
をイベントを発生させました!
したがって、依存関係は、データベース全体、またはCustomerServices以外のDBのテーブルに対して動作しているかのように見えます。誰かが、問題の内容を正確に判断するのに役立つ方法を提案できますか?
EDIT:イベントを発生させるのはALTER DATABASEコマンドではなく、SET SINGLE_USERがエラーを引き起こすことがわかりました。しかし、私はこの問題に多大な影響を与えません。
乾杯、 マット
提案していただきありがとうございます。ただし、通知用のサポートは、使用しているSQL Server 2008では削除されているように見えます。ポップアップエラーは赤いニシンのようです。 –
クエリ通知は、SQL Server 2008以降のバージョンから削除されていません**、廃止予定のパスにはありません。あなたはNotifications Servicesについて話していますが、これはまったく異なる、関係のない機能です。 ASPキャッシュの依存関係とSqlDependencyはクエリ通知を使用し、Notification Servicesとは何の関係もありません。 –
ポインタをありがとう。私はあなたの記事を読んで、MSのチュートリアルを順を追って説明しました。コードを複製するだけで、私はMSの提案と全く同じことをしていますが、サイコロはありません。サービスは機能していません。それが許可されている場合、チュートリアルのCanRequestNotifications()関数が問題を捕捉しないでしょうか? –