19. januar 2007 - 09:19Der er
4 kommentarer og 1 løsning
Slette data ældre end 1 år fra dags dato
Forestiller mig en Stored Procedure, som kører hver nat via. et job. Proceduren skal gennemløbe tabellen og slette alle data hvor feltet dato = dags-dato - 365 dage.
Tabel: minTabel
Prøvede med en forespørgsel fra Access' query designer (med hak i SQL92 compliant-feltet), men den brokker sig over funktionen Dato() (som jo er en VBA funktion - hvad skal jeg bruge i SQL Serveren?)
Ja, jeg nåede selv frem til noget der minder om det.
CREATE PROCEDURE dbo.MaintenanceOfmyTable AS DELETE FROM [myTable] WHERE convert(varchar(10), myField, 126) = CONVERT(VARCHAR(10), GETDATE()-365, 126) GO
Jeg bliver dog lidt mistænkelig ved at lade det køre automatisk - hvad hvis en eller anden "piller" ved uret på serveren, så kan jeg risikere at jobbet ender med at slette data som er nyere end den reelle, faktiske d.d.! Vil implementere en stump SQL som flytter dataene til en arkiv-tabel først.
Tak for hjælpen, teepee. Vil også implementere dit forslag om at bruge en transaktion.
Jeg har oplevet at låse bliver frigivet hurtigere, når man gør det eksplicit i stored procedures, men egentligt burde der ikke være nogen forskel.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.