2 baidu 30182091 baidu_30182091 于 2015.07.28 15:49 提问

在sql server中truncate、delete、drop删除表的区别

请详细的说一下truancate和delete在删除表的时候有什么区别,除了(truncate删除表后不能回滚,delete可以回滚;truncate删除的数据不会产生日志记录,delete删除的数据会产生日志记录;truncate直接删除全部的数据,delete可以加上where条件删除部分数据;truncate效率高,delete效率低;)这些之外还有别的吗?

8个回答

strutce
strutce   Ds   Rxr 2015.07.28 16:07

truncate不需要检索数据容易造成操作失误安全性比较低

CSDNXIAOD
CSDNXIAOD   2015.07.28 16:01

SQL Server 中 TRUNCATE 和DELETE区别
SQL Server 2000之DELETE和TRUNCATE的区别?
SQL SERVER快速删除数据库表里面的记录,truncate与delete的对比 【转】
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

oyljerry
oyljerry   Ds   Rxr 2015.07.28 15:55

truncate是把数据库的表内容全部清空
delete一般是删除一些特定的数据库记录,根据你的where条件等
drop是连数据库的表都删除了

qq_29764707
qq_29764707   2015.07.28 16:11

truncate是把数据库的表内容全部清空,保留表结构
delete是根据条件删除数据库记录
drop是数据库表删除

zq602316498
zq602316498   2015.07.28 17:09

truncate 和 delete 都是用来删除表中数据的,区别在于
trucate是一种DDL操作,它直接删除表底层的物理存储文件,不会触发事务,而且只能用来清空整个表。
delete则是一种事务操作,可以提交,可以回滚,它用来根据where条件删除某一条或一些记录,当然也是可以清空整个表。
另外,trucate会释放自增主键,而delelte不会。

drop则是删除整个表,表数据包括表结构都将会消失。

sina_2831808769
sina_2831808769   Rxr 2015.07.28 20:19

truncate不需要检索数据容易造成操作失误安全性比较低

tongyi55555
tongyi55555   2015.07.28 22:52

drop是删除表,这个表结构都没有了,剩下两个是删除数据用的,表结构还在。

delete删除的不完全,为什么呢,比如你有一个自增字段,用delete删除完所有的10行数据后再插入数据,自增字段是从11开始的,会接着以前的累加;

而truncate会删除这些自增信息,再插入时是从1开始的(假设你是定义的1开始)。

sinat_30952645
sinat_30952645   2015.08.31 12:39

drop会删除表数据和表结构,truncate和delete会删除表数据,但delete会操作会大量写日志,所以效率很低

Csdn user default icon
上传中...
上传图片
插入图片