SQL 2000 problem

PutteLiten

Twins have more fun
Gick med
6 Mar 2003
Ort
Hemma
Hoj
TL1000R; Triumph Tiger; XR650R SM; XL1200X
Är det någon som vet hur man tömmer poster i en SQL 2000 databas UTAN att det skrivs i Transaktions loggen?

Har en full data disk och skiten står still tills jag kan frigöra lite utrymme. :(

Någon som är en grymling på SQL?
 
rerell skrev:

Nope, inte trunkera loggen.

Måste radera (tömma) poster i själva databasen. Och det ska inte skrivas i loggen. Vet inte rakt av varför han vill ha det så. Men kan tänka mig att han vill radera i databasen, fixa något med diskarna, och sedan dra in datat igen med hjälp av loggen.? Kanske... Jag är lite osäker. Just nu letar jag bara efter kommandot att skriva, och alla SQL nissar har semester... :rolleyes:

Mmm, nu är det inte min databas utan en kollegas, men han har precis varit hos tandläkaren och blivigt pumpad men massa coola bedövnings medel så han e helt groggy! :D :D :D
 
Truncate table menade jag alltså... eller snackar vi om olika saker nu? :)
Truncate table tar bort alla rader i en tabell, på samma sätt som delete utan villkor, men loggar inte varje rad.

EDIT: Finns några fler skillnader, kolla i SQL Server Books Online.
 
Last edited:
Rerell menade nog förmodligen detta:
TRUCATE TABLE <din tabell>

Då dumpar man alla rader i en tabell utan att logga det.
 
rerell skrev:
Truncate table menade jag alltså... eller snackar vi om olika saker nu? :)

Truncate table tar bort alla rader i en tabell, på samma sätt som delete utan villkor, men loggar inte varje rad.

:rolleyes:
jag som vimsar.
Hmm, truncate table kan kanske funka! :tummenupp
Läste lite om den precis. :)

Såg att den inte loggar. :)

Tackar, i fall det funkar. :D
 
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...
 
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.
 
Tackar Zormin, tror att det hade funkat fint.

Men nu löste vi det lite annorlunda:

Delete Events from(Select top 1000 from events where GMT< '2003-01-01 00:00:00')

Dvs den letar upp de första 1000 posterna som är äldre än 1 januari och tar bort dem. på så vis undviker man att transaktionsloggen sväller till oanade proportioner. :-)

F.ö måste man i många fall använda '2003-08-01 00:00:00' för att få det att fungera.

:hej
 
PutteLiten skrev:
Tackar Zormin, tror att det hade funkat fint.

Men nu löste vi det lite annorlunda:

Delete Events from(Select top 1000 from events where GMT< '2003-01-01 00:00:00')

Dvs den letar upp de första 1000 posterna som är äldre än 1 januari och tar bort dem. på så vis undviker man att transaktionsloggen sväller till oanade proportioner. :-)

F.ö måste man i många fall använda '2003-08-01 00:00:00' för att få det att fungera.

:hej
Ok. Men nu tog ni ju inte bort ALLA rader som var äldre än ett visst datum. Det var ju det du frågade efter. Nåja.

Sen om man ska vara riktigt petig är det ju inte säkert att ni tog bort de 1000 äldsta eftersom ni inte körde någon "order by GMT".
 
Zormin skrev:
Ok. Men nu tog ni ju inte bort ALLA rader som var äldre än ett visst datum. Det var ju det du frågade efter. Nåja.

Sen om man ska vara riktigt petig är det ju inte säkert att ni tog bort de 1000 äldsta eftersom ni inte körde någon "order by GMT".

Hmmm, tänkte inte på det. :crash

Ska genast kolla upp med den andre killen (han som gör det). :)

Nu vet jag inte hur petigt det är att han tar bort precis alla efter ett visst datum, vi har inte haft tid att diskutera igenom allt ännu. Mycket som skall göras efter semestrarna...

Skickar honom ett mai s å får vi se om han säger "Opps"... :crash

:tummenupp
 
Nyheter
Nordic Sport & Event sammanfattar 2025 års GGN

Pressrelease; Visby, 2025-1...

2026 års YAMAHA XSR900 GP

Yamahas Sport Heritage-seri...

Yamaha firar 70 år med klassiska Supersport-färger

Yamaha Motor firar sitt 70-...

Smarta garageprylar från IVON!

IVON motorcykellyft, 450 ki...

Med ny V-twin och monocoque-ram

Ducati presenterar nya Hype...

Slutstrid i MotoGP

MotoGP-säsongen börjar lida...

CFMOTO V4 SR-RR

CFMOTO presenterade sitt pr...

Honda V3R 900 E-Compressor

Honda V3R 900 E-Compressor ...

Indian Concept Girder – En framtidsvision?

Indian Concept Girder är en...

Yamaha R7 får stor uppgradering!

Yamaha R7 får en nängd uppg...

Back
Top