PutteLiten skrev:
Ah fan
Tyvärr rensar truncate table HELA tabellen. Vi vill bara rensa en delmängd.
Typ alla äldre än ett visst datum.
Någon som kan det kommandot?
Har letat i Books online, men vet ju knappt vad jag ska söka på så det är lite svårt att hitta...
Jag har mycket svårt att tänka mig att varje rad har nån sorts intern tidsstämpel. Fast nu är jag bara vanlig dödlig SQL-hacker så jag kanske inte vet bättre... Om du däremot har en kolumn med en tidsstämpel så är det inte så svårt.
DELETE FROM din_tabell WHERE kolumnen_med_tidsstämpeln < '2003-08-01'
Detta tar bort allt innan den 1:e augusti. Men du ska få ett tips också. Innan du gör delete kan du ju göra en select för att se så att du tar bort rätt data.
SELECT * FROM din_tabell WHERE kolumnen_med_tidsstämpeln < '2003-08-01'
Sen hade du väl problem med att loggen svullade över på hela disken. Öppna Enterprise Manager, högerklicka på din databas (inte servern, utan databasen), välj Properties, klicka på fliken Transaction Log och klicka ur Automatically grow file. Då bör du kunna köra kommandon utan att SQL-servern ylar om att logfilen inte får plats.