问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL Server中truncate,delete和drop的异同点

发布网友 发布时间:2022-04-08 18:19

我来回答

2个回答

懂视网 时间:2022-04-08 22:40

TABLE

 

删除表中的所有行,而不记录单个行删除操作。 

语法

TRUNCATE TABLE name

 


参数

name

 



是要截断的表的名称或要删除其全部行的表的名称。

注释

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

 

 

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。 

TRUNCATE TABLE 不能用于参与了索引视图的表。

 



示例
下例删除 authors 表中的所有数据。

TRUNCATE TABLE authors

 

sql-truncate,delete,drop删除表数据的区别

标签:

热心网友 时间:2022-04-08 19:48

相同点:
1.truncate和不带where子句的delete、以及drop都会删除表内的数据。

2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。

不同点:
1. truncate 和 delete 只删除数据不删除表的结构(定义)
drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。

2. delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。

3.delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动
drop 语句将表所占用的空间全部释放。
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。

4.速度,一般来说: drop> truncate > delete

5.安全性:小心使用 drop 和 truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用 delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用 drop
想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

7、TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

8、TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

9、对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

10、TRUNCATE TABLE 不能用于参与了索引视图的表。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瑞安皇都大厦几个电梯 办签证和护照的具体步骤和一共的费用!我需要详细一点的答案. 办护照流程 办护照的流程是什么 哪位推荐几部韩剧啊!!要像豪杰春香,魔女幼熙这样的,剧情要感人,最好是... 小阴唇内应该是光滑的吗,阴道口痒为什么 阴道口有像草莓样正常吗 任氏族谱字辈:世秉忠贞 永达明玉起 国正天元律迎祖大继昌 河南夏氏家谱辈分我是永城市酂城镇夏氏夏世界具家谱记载洪武二年始祖良... 夏侯姓字辈排行 夏氏辈行,我爷爷明字辈,我父亲应字辈,我是崇字辈,后面是什么辈? 恶灵附身第六章失去控制水池怎么上 怎么通过设置局域网内电脑上网? 两台电脑共享上网如何设置 怎样去除车内鱼腥味 钓箱带增氧泵有用吗 ^_^ 车后备箱内有股咸鱼味、怎么处理? 如何快速去除车内臭鱼腥味 如何用酷我音乐盒往手机上下载歌 手机版酷我音乐盒如何下载歌曲? 我想买个钓鱼用的钓箱什么牌子的好点? 车后备箱有咸鱼味怎么处理? 酷我里的歌曲怎么下载到MP3? 如何提高新陈代谢速率? 怎么增快新陈代谢? 9个提高新陈代谢的方法,让你瘦的更快 顺丰快递员手持终端输入客户电话地址联系人连接打印机可以打出快递单 新世纪现在有些什么有实力的大活动 顺丰快递单打印软件(新版单子) 求凯旋门最有趣的活动 qq斗地主可以打生机吗 两台电脑如何共享上网?? 钓鲫鱼视频 钓鲫鱼用什么打窝 钓友自制钓箱多功能 2台电脑共享上网如何设置?? 去除车内鱼腥味 化绍新用的什么钓箱 恒冠054A固定式钓箱安装位置 QQ空间打开不到几秒钟就自动关闭, QQ空间打开后几秒就自动关闭,该如何解决? 为什么我的QQ空间打开了不到5秒就自动关闭?我却可以浏览别人的空间? QQ空间打开几秒钟后关闭 就是QQ空间进去的那一秒中,就这个界面怎样才可以解除? 为什么qq空间一打开几秒钟就自动关闭了 有些别的网页也是这样 求高人解答 顺便解决下 要详细点的 谢谢 黄金储备排名前十国家有那些? 小米摄像头在没有休眠的时候拍到的视频在小米后台可以看见吗? 荣耀9x怎么设置双击点亮屏幕 说说各国黄金储备是多少 华为荣耀9x如何设置图标 谁知道地球上有多少黄金? 还愿为什么被封? 世界各国官方持金量