Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Skąd SqlCacheDependency wie, kiedy komunikować się z dowolnymi odbiornikami, gdy dane w tabeli ulegną zmianie?

W Twojej bazie danych zostanie utworzona nowa tabela zawierająca nazwę tabeli, której aktualizacje chcesz sprawdzić, oraz numer zmiany. Każda tabela skonfigurowana dla sqldependency ma wyzwalacz skonfigurowany dla aktualizacji/wstawek, który zwiększa identyfikator zmiany w nowej tabeli, którą właśnie opisałem.

Twój mentalny model tego, jak to działa, jest odwrócony. Twoja aplikacja sprawdza dziennik, aby określić, czy tabela się zmieniła.

Więc jeśli tabela dziennika zmian (tak to nazywam) śledzi dwie tabele w twojej bazie danych (produkt, użytkownik), to będzie wyglądać tak.

+Table Name + ChangeNumber +
| Product   | 1            |
+-----------+--------------+
| User      | 1            |
+-----------+--------------+

Teraz, jeśli zmodyfikujesz cokolwiek w jednej z tych tabel, wyzwalacz zwiększy ChangeNumber i teraz wiemy, że się zmieniły.

Oczywiście jest w tym coś więcej, ale to jest ogólna idea.

Uwaga:należy zauważyć, że możesz unieważnić stronę, jeśli zmieni się jedna lub więcej tabel, więc jeśli Twoja strona ma skonfigurowaną zależność dla obu tych tabel, jeśli jedna z nich ulegnie zmianie, spowoduje to unieważnienie strony z pamięci podręcznej i ponowne buforowanie zaktualizowanej wersja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Złączenia SQL:przyszłość standardu SQL ANSI (gdzie vs złączenia)?

  2. Jak działa funkcja DIFFERENCE() SQL Server

  3. Znajdowanie jednoczesnych zdarzeń w bazie danych między czasami

  4. Jak zbudować podsumowanie, łącząc się z pojedynczą tabelą za pomocą programu SQL Server?

  5. Jak uzyskać ciąg połączenia z bazy danych