web-dev-qa-db-fra.com

Quelle est la différence entre drop table et delete table dans SQL Server?

Dans SQL Server, quelle est la différence entre les deux

  • Faites un clic droit sur un objet de la base de données (table/vue) et optez pour la suppression de la table (c'est-à-dire la table de script en tant que -> DROP To -> Nouvelle fenêtre de l'éditeur de requête)

  • Cliquez avec le bouton droit sur un objet de la base de données (table/vue) et choisissez Supprimer.

Je les ai essayés tous les deux et tous deux effectuent la même action. Une raison d'avoir deux options pour la même chose? L'option de suppression est-elle simplement un moyen grossier de supprimer l'objet de base de données?

Pour mémoire, j'utilise SS2008.

17
Arnkrishn

Dans l'interface graphique d'objet de suppression, une option "script" donne en premier lieu l'instruction t-sql, qui est une instruction de table pure. Où que lorsque vous choisissez l'option drop table, le t-sql généré s'exécutera uniquement si la table existe dans la table sys.objects.

1
Arnkrishn

DROP supprimera également toutes les données et la structure de la table. 

DELETE supprimera les données mais la structure de la table restera la même et nous pouvons toujours restaurer les données. De même, avec DELETE, vous pouvez utiliser la condition where, c’est-à-dire supprimer uniquement certains enregistrements.

30
NiKhila Kota

il s'agit de drop table et delete object, du moins dans SQL Server 2005. Les deux exécutent la même action.

Delete table et Drop table ne sont pas identiques. Le premier supprimera toutes les données de la table tandis que le second supprimera la table de la base de données.

14
Russ Cam

Supprimer v/s Drop.

  • L'instruction Delete effectue une suppression conditionnelle, alors que la commande Drop supprime tous les enregistrements de la table.

  • L'instruction Delete supprime uniquement les lignes de la table et préserve la structure de la table. La commande Drop supprime toutes les données de la table et de la structure.

  • L'opération de suppression peut être annulée et elle n'est pas automatiquement validée, tandis que l'opération de suppression ne peut l'être d'aucune façon, car il s'agit d'une instruction auto-validée.

5
priya

L'un d'entre eux effectue une suppression, l'autre vous fournit le script TSQL pour effectuer une suppression afin que vous puissiez le modifier ou l'utiliser ailleurs.

2
DamienG

Drop table..it supprime la table complète de la base de données.Il ne peut pas être récupéré bak Delete est utilisé pour supprimer des données de la table .. les données peuvent être extraites à l'aide de ROLL BACK.

1
meenakshi

Une autre différence majeure réside dans le fait que, dans DELETE, il parcourt/analyse tous les enregistrements (conditionnellement, en fonction du prédicat) et est supprimé. Mais dans drop, il parcourra les enregistrements à la place, il supprimera l'entrée de la table dans la base de données. Si nous examinons le plan d'exécution pour la suppression:

 enter image description here

En cas de suppression puisqu'il s'agit d'une commande DDL, il ne traverse même pas les enregistrements et ne crée aucun plan d'exécution.

1
Kannan Kandasamy

Ces deux sont les mêmes opérations. DROP TABLE est une instruction SQL à cet effet. Delete est un nom de commande standard, convivial et piloté par un menu. C'est tout.

1
Michał Chaniewski

Si vous choisissez Supprimer, puis choisissez de le scripter, vous verrez qu'il vous donne également une instruction de suppression.

0
ShadyRudy

L'utilisation de commandes de suppression peut être supprimée de la table de manière conditionnelle, mais les modifications peuvent être effectuées/annulées à l'aide de COMMIT et ROLLBACK. La structure de la table n'est jamais perdue. Truncate est une alternative à Delete en ce sens qu'il permet la suppression de lignes sans perdre la structure de la table mais UNLIKE Delete, l'opération ne peut pas être annulée. L'instruction Drop, cependant, supprime complètement la table ainsi que sa structure de la base de données et cette opération ne peut pas être annulée. Donc, Delete est une instruction DML et Turncate et Drop sont des instructions DDL.

0

Drop table supprimera le contenu de la table et la table self . Delete table supprimera simplement le contenu .Truncate "réinitialisera" simplement le contenu à zéro

0
Thomas Wouters