在SQL Server中,以下两者有什么区别-
右键单击数据库对象(表/视图)并选择“删除表”(即将表脚本编写为 -> DROP To -> 新查询编辑器窗口)
右键单击数据库对象(表/视图)并选择删除。
我都尝试过,并且都执行相同的操作。同一件事有两个选择有什么理由吗?删除选项只是删除数据库对象的粗略方法吗?
仅供记录 - 我正在使用 SS2008。
DROP
将删除所有数据和表结构。
DELETE
会删除数据,但表结构保持不变,我们仍然可以回滚数据。另外,通过 DELETE
,您可以使用 where
条件,即仅删除某些记录。
至少在 SQL Server 2005 中是 drop table 和 delete object。两者执行相同的操作。
但Delete table
和 Drop table
并不相同。前者将从表中删除所有数据,而后者将从数据库中删除表。
删除 v/s 删除。
Delete 语句执行基于条件的删除,而 Drop 命令则删除表中的整个记录。
Delete 语句仅删除表中的行,并保留表结构,而 Drop 命令会删除表中的所有数据和表结构。
Delete 操作可以回滚,并且不会自动提交,而 Drop 操作不能以任何方式回滚,因为它是自动提交的语句。
其中一个执行删除,另一个为您提供执行删除的 TSQL 脚本,以便您可以在其他地方修改或使用它。
这两个是相同的操作。 DROP TABLE 是用于此目的的 SQL 语句,Delete 是标准的、用户友好的、菜单驱动的命令名称。仅此而已。
在删除对象 GUI 中,顶部有一个“脚本”选项,它提供了 t-sql 语句,该语句是普通的删除表语句。当您选择删除表选项时,生成的 t-sql 仅当该表存在于 sys.objects 表中时才会执行删除。
删除表..它将从数据库中删除完整的表。它无法检索 bak 删除用于从表中删除数据..可以使用ROLL BACK检索数据。
如果您选择删除,然后选择编写脚本,您将看到它也为您提供了删除表语句。
使用删除命令可以有条件地从表中删除行,但可以使用 COMMIT 和 ROLLBACK 完成/撤消更改。表结构永远不会丢失。截断是删除的替代方案,因为它允许删除行而不丢失表结构,但与删除不同的是,操作无法撤消。然而,Drop 语句会从数据库中完全删除表及其结构,并且此操作无法撤消。所以,Delete 是 DML 语句,Turncate 和 Drop 是 DDL 语句。
删除表将删除表的内容和表本身。 删除表只会删除内容。 截断只会将内容“重置”为零
如果使用了 drop 和 create to 语句,我可以回滚表的内容吗?
我们可以使用删除命令从表中删除特定记录。但是使用 drop 我们可以删除表。如果您使用 Drop,结构也会消失,但如果您使用删除命令,结构将不会消失。