首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 施用truncate和delete清空table的区别

2012-11-09 
sql 使用truncate和delete清空table的区别初衷是一个有自加的主键id的表,已经有了很多调试数据,然后到了正

sql 使用truncate和delete清空table的区别

初衷是一个有自加的主键id的表,已经有了很多调试数据,然后到了正式利用此表的时候,仅将这些数据删除,然而,id却会自动依照原有的进行自增,而不是从1自增,往往都是轻易上千的,老别扭了,扒拉好久sql书,发现truncate table tablename就可以实现id从1自增功能,现提供一些几点truncate(截断)与delete(删除)的区别:

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。

2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。

3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。

4、TRUNCATE不能触发任何DELETE触发器。

5、不能授予任何人清空他人的表的权限。

6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

7、不能清空父表。

热点排行