首页 > 试题广场 >

DELETE和TRUNCATE TABLE都是删除表中的数据

[不定项选择题]
DELETE和TRUNCATE TABLE都是删除表中的数据的语句,它们的不同之处描述正确的是:
  • TRUNCATE TABLE比DELETE的速度快
  • 在删除时如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE仍然删除,只是表的结构及其列、约束、索引等保持不变,但DELETE是直接返回错误
  • 对于被外键约束的表,不能使用TRUNCATE TABLE,而应该使用不带WHERE语句的DELETE语句。
  • 如果想保留标识计数值,要用DELETE,因为TRUNCATE TABLE会对新行标志符列使用的计数值重置为该列的种子
相同点都是只删除数据,不删除结构( drop 摧毁表结构)
Truncate 是 DDL 语句,隐式提交,不进日志,不能回滚,速度快;
Delete 是 DML 语句,进日志,可以关联触发器,删除后空间还在。

发表于 2019-02-18 20:00:40 回复(0)
delete 作用是在指定表或者指定视图的基表中删除记录,用户可以删除位于自己模式中的表的记录行,也可以删除表上具有delete权限的记录行,且在删除指定表的记录行时,必须满足该表上的完整性约束条件。 truncate用于删除表的所有数据,执行速度快,释放表的占用空间,操作不可撤销。delete删除表的所有数据时,不会释放招用的空间,且操作时可以撤销的。
发表于 2019-02-17 21:54:51 回复(0)