Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Suppression de grandes quantités de données de SQL Server 2008

Votre question est assez vague, mais je pense que vous dites ceci :

  • Je peux INSÉRER des données dans ma base de données
  • MISE À JOUR de mes données semble difficile, donc je préférerais simplement SUPPRIMER puis INSÉRER à nouveau (parce que j'ai déjà écrit ce code)

Je dirais que c'est une mauvaise idée, pour les raisons suivantes (et sans doute bien d'autres) :

  • Même si vous vous contentez de SUPPRIMER, vous devez toujours identifier les lignes correctes à supprimer, supprimer des tableaux dans le bon ordre, etc. Il est donc peu probable que vous gagniez beaucoup de temps de toute façon
  • Vous ajouterez une complexité inutile et des travaux de maintenance supplémentaires à l'application :gestion des transactions, code supplémentaire à maintenir, modifications des autorisations, etc.
  • Ajouter une logique côté serveur à la base de données sous la forme de déclencheurs et/ou de procédures deviendra plus difficile car un DELETE ne signifie plus nécessairement DELETE, cela pourrait signifier le début d'un UPDATE (je veux dire logiquement, pas physiquement) et c'est très pénible à maintenir et à casser potentiellement tout code, trace ou audit basé sur des actions ou des événements DML
  • La base de données devra faire plus de journalisation car vous avez divisé une opération en deux

Peut-être avez-vous de bonnes raisons de vouloir éviter une mise à jour, mais "c'est difficile à écrire" ne devrait pas en faire partie (excuses si je simplifie à l'extrême votre situation).

Vous pouvez obtenir une réponse plus utile si vous expliquez exactement ce qui est "difficile", donnez un aperçu de ce que signifie une "grande quantité de données", montrez des structures de table et du code qui illustrent vos difficultés, etc.