首页 > 其他 > 详细

【转载】delete table 和 truncate table 的区别

时间:2016-03-28 21:46:17      阅读:246      评论:0      收藏:0      [点我收藏+]

使用delete语句删除数据的一般语法格式:

delete [from]

{table_name、view_name}

[where]

将XS表中的所有行数据删除

delete XS

执行完后,发现XS表中的数据都删除了,但是表的结构什么都还在。

truncate

truncate table语句将删除指定表中所有数据,因此也称其为清除表数据语句,一般格式如下

truncate table name

由于truncate语句将删除表中的所有数据,且无法恢复,因此使用时必须十分小心。

使用truncate table删除了指定表中的所有行,但表的结构及其列,约束,索引等保持不变,而新行标识所用的计数值重置为该列的初始值。如果想保留标识计数值,则要使用DELETE语句。

TRUNCATE TABLE执行速度比DELETE块,且使用的系统和事务日志资源少。DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项。而TRUNCATE TABLE通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

对于有外键约束引用的表,不能使用TRUNCATE TABLE删除数据,而应该使用布袋WHERE子句的DELETE语句。另外TRUNCATE TABLE也不能用于参与了索引视图的表。

转自于博客园,如有冒犯请及时通知,本人会在第一时间删除。

【转载】delete table 和 truncate table 的区别

原文:http://www.cnblogs.com/hsd1727728211/p/5330623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!