Må vi se din tabel definition ? Uden den kan jeg ikke hjælpe dig !
Jeg skal se din tabel definition, og den SQL du i dag bruger idag til at hente data ud. ellers kan jeg kuns sige du skal sætte det rigtige filter så virker det !
Jeg tror den hurtigste måde er at lave en CHECKSUM. DU kan f.eks. lave et nyt felt i dine tabeller, hvor du beregner checksum af hver enkelt række. Denne kolonne skal indekseres. Når du har nye rækker som du skal importere, kan du beregne checksum af rækken først, og checke om du allerede har denne række.
Prøv at kigge på ROWVERSION (TIMESTAMP) kolonne typen. Den opdateres til en ny (højere) værdi ved hver UPDATE på en række.
Hvis du i din tabel tilføjer en sådan kolonne, så kommer din algoritme for delta load til at ligne denne
begin transaction insert into newtable select * from oldtable where myrowversion > (select oldrowversion from delta_register)
update delta_register set oldrowversion = select max(myrowversion) from oldtable commit
Hvis du vil have opdatering på eksisterende tabller skal du udbygge med sammenligning på primærnøgler for at afgøre om der skal anvendes INSERTs eller UPDATES. DELETE er lidt mere tricky - men nu har du skabelonen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.