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

Hold øje med en tabel nye poster i sql database

Her er mine forslag:

  1. Hvis du er i stand til at tilføje dublet tabel til databasen, så er her en løsning. Du har dit tabel1 og tabel 2 (Kopi af tabel1 ). Når du indsætter nye poster i tabel1 , kan du sammenligne dem med eksisterende poster i din tabel2 og dermed finde nye rekorder. Efter sammenligning bør du tilføje alle nye poster til tabel2 . Dette er en form for synkronisering. Dette kan gøres via lagret proc eller programmatisk.

  2. Du behøver ikke andre borde. Du kan gemme alle dine data i din app-cache og kontrollere med et vist tidsrum (f.eks. 5 sekunder), om der er nye hændelser, som ikke findes i din cache. Hvis de ikke findes - underret dem i din log eller et andet sted og føj dem til cachen. Men hvis der er for mange poster, vil behandlingstiden blive kraftigt øget + hukommelsesforbrug.

  3. Hvis du er i stand til at ændre db, kan du tilføje noget som 'isNew' kolonne til din tabel. Når der kom en ny data fra hjemmesiden, vil kolonnen være 'sand', dit program kan spore dette, og efter behandling indstilles dette flag til falsk for hver post. (Hvis webstedet ikke kan indstille dette flag, kan du bruge SQL TRIGGER EFTER INSERT for at indstille flagværdien til sand. Hjemmesiden kan ikke engang vide om denne funktion, hvis det er tredjeparts websted, eller du ikke ønsker at ændre noget der)

  4. Her er en artikel om EF-ændringssporing:http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx

Men problemet er, at du skal tjekke hele tabellen for ændringer via EF, der vil ramme din app-ydelse.

Her er nyttige oplysninger om SQL Server-sideændringssporing og implementeringskoncepter:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft. com/en-us/library/bb933994.aspx



  1. Hvordan kan jeg automatisere opgaven med at generere scripts i SQL Server Management Studio 2008?

  2. SQL Server 2016:sys.dm_exec_function_stats

  3. SQLSTATE[HY000] [1045] Adgang nægtet for brugeren 'brugernavn'@'localhost' ved hjælp af CakePHP

  4. Hvordan fjerner du dubletter fra kommasepareret liste med regexp_replace i Oracle?