代码之家  ›  专栏  ›  技术社区  ›  Arnkrishn

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

  •  17
  • Arnkrishn  · 技术社区  · 15 年前

    • 右键单击数据库对象(表/视图)并选择删除表(即,将表脚本设置为->删除到->新建查询编辑器窗口)

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

    为了记录在案,我正在使用SS2008。

    12 回复  |  直到 12 年前
        1
  •  46
  •   ThiefMaster    12 年前

    DROP 将同时删除所有数据和表结构。

    DELETE 删去 where 条件,即仅删除某些记录。

        2
  •  15
  •   Russ Cam    15 年前

    它是 桌子 删去 对象

    Delete table Drop table 但它们并不相同。前者将从表中删除所有数据,而后者将从数据库中删除表。

        3
  •  8
  •   John Conde    12 年前

    删除v/s下拉列表。

    • Delete语句只删除表中的行,并保持表结构不变,Drop命令删除表和表结构中的所有数据。

    • Delete操作可以回滚,并且不是自动提交的,而Drop操作不能以任何方式回滚,因为它是一个自动提交的语句。

        4
  •  2
  •   DamienG    15 年前

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

        5
  •  1
  •   Michał Chaniewski    15 年前

        6
  •  1
  •   Arnkrishn    15 年前

    在delete对象GUI中,顶部有一个“脚本”选项,它给出了t-sql语句,这是一个普通的drop table语句。其中,当您选择drop table选项时,仅当sys.objects表中存在表时,生成的t-sql才会执行drop。

        7
  •  1
  •   Community CDub    10 年前

    Drop table..它将从数据库中删除完整的表。无法检索bak

        8
  •  1
  •   Kannan Kandasamy    7 年前

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

    enter image description here

    在Drop as is DDL命令的情况下,它甚至不会遍历记录,也不会创建任何执行计划。

        9
  •  0
  •   ShadyRudy    15 年前

    如果您选择Delete,然后选择编写脚本,您将看到它也为您提供了一个droptable语句。

        10
  •  0
  •   Muhammad Murad Haider    11 年前

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

        11
  •  0
  •   Thomas Wouters    7 年前

    Drop table将删除表的内容和表本身。 删除表只会删除内容。 Truncate只会将内容“重置”为零

        12
  •  -1
  •   shekar dugyala    12 年前