sql >> Database >  >> RDS >> Sqlserver

Hoe weet een SqlCacheDependency wanneer terug te communiceren met luisteraars wanneer gegevens in een tabel veranderen?

Er wordt een nieuwe tabel in uw database gemaakt met de naam van de tabel waarvan u op updates wilt controleren en een wijzigingsnummer. Elke tabel die je hebt ingesteld voor sqldependency heeft een trigger die is ingesteld voor updates/inserts die de changeid in de nieuwe tabel die ik zojuist heb beschreven, verhoogt.

Jouw mentale model van hoe dit werkt is achterlijk. Uw applicatie controleert het logboek om te bepalen of een tabel is gewijzigd.

Dus als de changelog-tabel (zo noem ik het) twee tabellen in je database volgt (product, gebruiker), ziet het er zo uit.

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

Als u nu iets in een van deze tabellen wijzigt, verhoogt de trigger ChangeNumber en we weten nu dat ze veranderd zijn.

Uiteraard is er meer aan de hand, maar dit is het algemene idee.

Opmerking:Houd er rekening mee dat u een pagina ongeldig kunt maken als een of meer tabellen veranderen, dus als uw pagina afhankelijkheid heeft ingesteld voor beide tabellen, zal als een van deze verandert, de pagina in het cachegeheugen ongeldig worden en een bijgewerkte versie.




  1. Oracle SQL-Loader efficiënt omgaan met interne dubbele aanhalingstekens in waarden

  2. Een variabele gebruiken in MySQL Select-instructie in een Where-clausule

  3. Kolom bijwerken met null-waarde

  4. Hoe Mysql Shell op MacOS te verwijderen