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

时间:2009-07-17 15:15:13

标签: sql-server sql-server-2008

在SQL Server中,以下两个之间有什么区别 -

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

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

我尝试了两者并且都执行相同的操作。对于同一件事有两个选择的任何理由?删除选项只是删除数据库对象的粗略方法吗?

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

11 个答案:

答案 0 :(得分:30)

DROP也将删除所有数据和表格结构。

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

答案 1 :(得分:14)

drop table delete object ,至少在SQL Server 2005中。两者都执行相同的操作动作。

Delete tableDrop table虽然不一样。前者将删除表中的所有数据,而后者将从数据库中删除表。

答案 2 :(得分:5)

删除v / s Drop。

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

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

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

答案 3 :(得分:2)

其中一个执行删除,另一个提供TSQL脚本进行删除,以便您可以在其他地方修改或使用它。

答案 4 :(得分:1)

这两个是相同的操作。 DROP TABLE是用于此的SQL语句,Delete是标准的,用户友好的,菜单驱动的命令名称。就是这样。

答案 5 :(得分:1)

在删除对象GUI中,顶部有一个'script'选项,它给出了t-sql语句,它是普通的drop table语句。当您使用drop table选项时,只有在sys.objects表中存在表时,生成的t-sql才会执行drop。

答案 6 :(得分:1)

删除表..将从Database.it中删除完整的表,无法检索到bak 删除用于从表中删除数据..可以使用ROLL BACK检索数据。

答案 7 :(得分:0)

如果选择“删除”,然后选择编写脚本,您将看到它也为您提供了一个删除表语句。

答案 8 :(得分:0)

使用Delete命令行可以有条件地从表中删除,但可以使用COMMIT和ROLLBACK完成/撤消更改。表结构永远不会丢失。 Truncate是Delete的替代方法,它允许删除行而不会丢失表结构,但UNLIKE Delete,操作无法撤消。但是,Drop语句会从数据库中完全删除表及其结构,并且此操作无法撤消。因此,Delete是一个DML语句,Turncate和Drop是DDL语句。

答案 9 :(得分:0)

Drop table将删除表和表self的内容。 删除表只会删除内容。 截断只会将内容“重置”为零

答案 10 :(得分:-1)

我们可以使用delete命令从表中删除特定记录。但是使用drop我们可以删除表。如果你使用Drop,那么结构也会出现,但是如果使用delete命令,结构就不会去了。