sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan ved en SqlCacheDependency, hvornår den skal kommunikere tilbage til alle lyttere, når data i en tabel ændres?

Der oprettes en ny tabel i din database, som indeholder et navn på den tabel, du vil tjekke for opdateringer på, og et ændringsnummer. Hver tabel, du har opsat til sqldependency, har en trigger opsat for opdateringer/indsættelser, der øger changeid'et i den nye tabel, jeg lige har beskrevet.

Din mentale model for, hvordan dette virker, er bagvendt. Din applikation tjekker loggen for at afgøre, om en tabel er ændret.

Så hvis changelog-tabellen (det er hvad jeg kalder den) sporer to tabeller i din database (produkt, bruger), vil den se sådan ud.

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

Hvis du nu ændrer noget i en af ​​disse tabeller, vil triggeren øge ChangeNumber og vi ved nu, at de har ændret sig.

Selvfølgelig er der mere i dette, men dette er den generelle idé.

Bemærk:Det skal bemærkes, at du kan ugyldiggøre en side, hvis en eller flere tabeller ændrer sig, så hvis din side har afhængighed sat op for begge disse tabeller, vil det, hvis en af ​​dem ændres, ugyldiggøre den cachelagrede side og gen-cache en opdateret version.




  1. Hvad er SQL Injection?

  2. Håndtering af din MS SQL-replikering

  3. Hvordan sletter jeg en tabel fra en mysqldump

  4. Tilføj uger til en dato i PostgreSQL