SQL Server中的drop table和delete table有什么区别?

Arn*_*shn 21 sql-server sql-server-2008

在SQL Server中,以下两者有什么区别 -

  • 右键单击数据库对象(表/视图)并选择Drop表(即脚本表为 - > DROP To - > New Query Editor窗口)

  • 右键单击数据库对象(表/视图)并选择"删除".

我试过它们两个都执行相同的操作.为同一件事有两个选择的任何理由?删除选项只是丢弃数据库对象的粗略方法吗?

仅供记录 - 我正在使用SS2008.

小智 35

DROP 将删除所有数据和表结构.

DELETE将删除数据,但表结构将保持不变,我们仍然可以回滚数据.也DELETE可以使用where条件,即只删除某些记录.


Rus*_*Cam 14

它是drop tabledelete 对象,至少在SQL Server 2005中.两者都执行相同的操作.

Delete table并且Drop table是不一样的,虽然.前者将删除表中的所有数据,而后者将从数据库中删除表.


小智 6

删除v/s Drop.

  • Delete语句执行基于条件的删除,而Drop命令删除表中的整个记录​​.

  • Delete语句仅删除表中的行,并将表结构保留为相同,Drop命令删除表中的所有数据和表结构.

  • 删除操作可以回滚并且不会自动提交,而Drop操作无法以任何方式回滚,因为它是自动提交的语句.


Arn*_*shn 1

在删除对象 GUI 中,顶部有一个“脚本”选项,它提供了 t-sql 语句,该语句是普通的删除表语句。当您选择删除表选项时,仅当该表存在于 sys.objects 表中时,生成的 t-sql 才会执行删除。