sql >> Databasteknik >  >> RDS >> Sqlserver

Ta bort stora mängder data från SQL Server 2008

Din fråga är ganska vag, men jag tror att du säger så här:

  • Jag kan INFOGA data i min databas
  • Att UPPDATERA mina data ser svårt ut, så jag föredrar att bara DELETE och sedan INFOGA igen (eftersom jag redan har skrivit den koden)

Jag skulle säga att detta är en dålig idé av följande skäl (och utan tvekan många fler):

  • Även om du bara DELETE behöver du fortfarande identifiera rätt rader att ta bort, radera från tabeller i rätt ordning etc. Så det är osannolikt att du kommer att spara mycket tid ändå
  • Du kommer att lägga till onödig komplexitet och extra underhållsarbete till applikationen:transaktionshantering, ytterligare kod att underhålla, ändringar av behörigheter etc.
  • Att lägga till logik på serversidan till databasen i form av triggers och/eller procedurer kommer att bli svårare eftersom en DELETE inte nödvändigtvis egentligen betyder DELETE längre, det kan betyda starten på en UPPDATERING (jag menar logiskt, inte fysiskt) och det är en enorm smärta att underhålla samt potentiellt bryta kod, spår eller revisioner som är baserade på DML-åtgärder eller händelser
  • Databasen kommer att behöva logga mer eftersom du har delat upp en operation i två

Du kanske har goda skäl att vilja undvika en UPPDATERING, men "det är svårt att skriva" borde inte vara en av dem (ursäkta om jag förenklar din situation).

Du kan få ett mer användbart svar om du förklarar exakt vad som är "svårt", ger lite bakgrund om vad "stor mängd data" betyder, visar några tabellstrukturer och kod som illustrerar dina svårigheter etc.




  1. Välja från en databas baserat på en lista med unika par

  2. Använda Babel i produktionen - Hur man förkompilerar manus

  3. codeigniter - databas:hur man uppdaterar flera tabeller med en enda uppdateringsfråga

  4. Jämför MySQL och Java Time