sql >> データベース >  >> RDS >> Sqlserver

テーブル内のデータが変更されたときに、SqlCacheDependency はどのようにしてリスナーに通信するかを知ることができますか?

    更新を確認するテーブルの名前と変更番号を保持する新しいテーブルがデータベースに作成されます。 sqldependency 用に設定した各テーブルには、先ほど説明した新しいテーブルの changeid をインクリメントする更新/挿入用のトリガーが設定されています。

    これがどのように機能するかについてのあなたのメンタルモデルは逆です。アプリケーションはログをチェックして、テーブルが変更されたかどうかを判断します。

    したがって、変更ログ テーブル (私はそう呼んでいます) がデータベース内の 2 つのテーブル (製品、ユーザー) を追跡している場合、次のようになります。

    +テーブル名 + ChangeNumber +|製品 | 1 |+----------+--------------+|ユーザー | 1 |+----------+--------------+  

    これらのテーブルのいずれかで何かを変更すると、トリガーは ChangeNumber を増やします

    明らかにこれには他にもありますが、これが一般的な考え方です。

    注:1 つまたは複数のテーブルが変更された場合、ページを無効にすることができることに注意してください。そのため、ページにこれらのテーブルの両方に依存関係が設定されている場合、それらのいずれかが変更されると、キャッシュされたページが無効になり、更新されたページが再キャッシュされます。バージョン。




    1. 日時列から日付を選択するにはどうすればよいですか?

    2. SQLiteで特定の日付/時刻からの秒数を計算する

    3. NOTINからNOTEXISTSへの変換

    4. 特定の日に作成および/または変更されたストアドプロシージャのリストを取得しますか?