64 votes

Avantages et Inconvénients de TRONQUER vs SUPPRIMER à PARTIR de

Quelqu'un pourrait-il me donner un rapide aperçu des avantages et inconvénients de l'utilisation de ces deux affirmations:

TRUNCATE TABLE dbo.MyTable

vs

DELETE FROM dbo.MyTable

Il semble comme ils font tous les deux la même chose quand tout est dit et fait; mais il doit y avoir des différences entre les deux.

Merci encore!

90voto

dcp Points 26928

TRUNCATE ne génèrent pas de toutes les données de restauration, ce qui en fait la vitesse de l'éclair. Il a juste libère les pages de données utilisé par la table.

Toutefois, si vous êtes dans une transaction et souhaitez pouvoir "annuler" cette suppression, vous devez utiliser DELETE FROM, ce qui donne la possibilité de rollback.

48voto

Ben Robinson Points 14558

Un autre point clé pas mentionné dans les autres réponses, c'est qu' TRUNCATE TABLE permettra de réinitialiser votre identité à la graine initiale, alors que l' DELETE FROM portera sur l'incrémentation de l'endroit où il l'avait laissé.

9voto

Kyle Hale Points 2989

Une autre différence à partir d'un point de vue sécurité, c'est que TRONQUER nécessite de MODIFIER les privilèges sur la table, tandis que SUPPRIMER exige simplement (roulement de tambour) de SUPPRIMER les autorisations sur la table.

4voto

Justin Niessner Points 144953

TRUNCATE TABLE n'a pas le journal de la transaction. Cela signifie qu'il est rapide comme l'éclair pour les grandes tables. L'inconvénient est que vous ne pouvez pas annuler l'opération.

DELETE FROM journaux de chaque ligne qui est supprimée dans les journaux des transactions afin que l'opération prend un certain temps et les causes de vos journaux de transactions à croître de façon spectaculaire. L'avantage est que vous pouvez annuler l'opération en cas de besoin.

2voto

CNkatcher Points 1

Je crois Supprimer et de les Tronquer ne peut être annulée si l'opération a été exécutée et transaction explicite. Sinon, vous devez effectuer une restauration pour récupérer les données supprimées

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X