81 votes

Différence entre drop table et tronquer table?

J'ai construit des tables dans le cadre de la synthèse de mon rapport. Je n'ai pas du tout besoin après. Quelqu'un a mentionné de les tronquer, ce serait plus rapide.

104voto

JoshL Points 4143

Supprimer des enregistrements d'une table dans les journaux pour chaque suppression et exécute supprimer des déclencheurs pour les enregistrements supprimés. Tronquer est un plus puissant de commande qui se vide d'un tableau sans enregistrement chaque ligne. SQL Server ne vous empêche de la troncature d'un tableau avec les clés étrangères de référencement, à cause de la nécessité de vérifier les clés étrangères sur chaque ligne.

Tronquer est normalement ultra-rapide, idéal pour le nettoyage des données dans une table temporaire. Il ne conserver la structure de la table pour une utilisation future.

Si vous souhaitez réellement supprimer la table des définitions ainsi que les données, il suffit de déposer les tables.

Voir cet article MSDN pour plus d'info

88voto

ceejayoz Points 85962

DROP TABLE supprime la table.

TRUNCATE TABLE le vide, mais laisse sa structure pour les données futures.

26voto

daremon Points 3171

DROP et TRUNC faire différentes choses:

TRUNCATE TABLE

Supprime toutes les lignes d'une table sans l'enregistrement de l'individu suppressions de lignes. TRUNCATE TABLE est similaire à la DELETE sans clause where; toutefois, l'instruction TRUNCATE TABLE est plus rapide et utilise moins de système et le journal des transactions les ressources.

DROP TABLE

Supprime un ou plusieurs définitions de table et toutes les données, index, triggers, les contraintes, et la permission les spécifications de ces tables.

Aussi loin que la vitesse est la différence doit être de petite taille. Et de toute façon si vous n'avez pas besoin de la structure de la table à tous, certainement utiliser DROP.

20voto

Horcrux7 Points 8369

Je pense que vous la différence entre SUPPRIMER la TABLE et de l'instruction TRUNCATE TABLE.

DROP TABLE

supprimer la table de la base de données.

SUPPRIMER LA TABLE

sans condition de supprimer toutes les lignes. Si il y a de déclenchement et les références de ce processus pour chaque ligne. Aussi un indice de la modifier si il y a un.

TRUNCATE TABLE

définissez le nombre de lignes de zéro et sans enregistrement chaque ligne. Qu'il est beaucoup plus rapide que les autres fois.

11voto

Nathan Feger Points 7675

Aucune de ces réponses soulignent une différence importante à propos de ces deux opérations. Drop table est une opération qui peut être restaurée. Cependant, truncate ne peut pas être annulée ["TRUNCATE TABLE" peut être annulée comme bien]. De cette façon, la suppression d'une très grande table peut être très cher si il y a beaucoup de lignes, parce qu'ils ont tous à être enregistré dans un espace temporaire dans le cas où vous décidez de rouler de nouveau.

Habituellement, si je veux me débarrasser d'une grande table, je vais le tronquer, puis déposez-la. De cette façon, les données seront mis son veto sans enregistrement, et la table peut être supprimé, et que la chute va être très bon marché car les données doivent être enregistrées.

Il est important de préciser cependant que tronquer juste supprime les données, de quitter la table, tandis que la baisse sera, en fait, de supprimer les données et la table elle-même. (en supposant que les clés étrangères ne s'opposent à une telle action)

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