2009-07-17 174 views
14

在SQL Server中,就是一个数据库对象(表/视图)以下两SQL Server中的drop table和delete table有什么区别?

  • 右键之间,齐齐DROP TABLE(即脚本表的差额为 - >降至 - >新查询编辑器窗口)

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

我试过它们两个都执行相同的操作。对于同一事物有两个选择的任何理由?删除选项只是删除数据库对象的粗糙方法吗?

只是为了记录 - 我使用SS2008。

+1

对不起 - 只发现一个区别。在删除对象GUI中,顶部有一个'脚本'选项,它提供了简单的drop table语句的t-sql语句。当你使用drop table选项时,只有在sys.objects表中存在该表时,生成的t-sql才会执行drop。抱歉再次提出这个问题。请继续并关闭它。 – Arnkrishn 2009-07-17 15:24:06

回答

1

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

2

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

+0

是的,你是对的:)我没有以这种方式看待这个问题 - 我的回答更注重结果,你已经注意到生成DROP语句允许进行一些手动更改,或者复制到脚本,例如...我为你的答案投票,欢呼:) – 2009-07-17 15:19:14

1

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

14

下降删除对象,至少在SQL Server 2005都执行相同的操作。

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

0

如果您选择删除,然后选择编写脚本,您将会看到它也为您提供了drop table语句。

1

删除表格,它将从数据库中删除完整的表格。不能检索bak 删除用于从表格中删除数据..可以使用ROLL BACK检索数据。

26

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

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

-1

我们可以使用delete命令从表中删除特定的记录。但使用拖放我们可以删除表格。如果你使用Drop,结构也会去,但是如果你使用delete命令,结构将不会去。

4

删除v/s删除。

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

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

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

0

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

0

删除表将删除表和表自身的内容。 删除表格只会删除内容。 截断将只是'重置'内容为零

0

另一个主要的区别是,在DELETE中它将遍历/扫描到所有(基于条件的谓词)记录并删除。但是,它会遍历记录,而不是从数据库中删除实际的表项。如果我们看一下执行计划删除:

enter image description here

在下降的情况下,因为它是DDL命令它甚至不会遍历记录并不会产生任何的执行计划。

相关问题