一、释放数据不同
1、truncate table:truncate table 直接释放数据页,并且在事务日志中也只记录数据页的释放。
2、delete * from:delete * from 是一行一行地释放数据,在事务日志中要记录每一条记录的删除。
二、清空标识不同
1、truncate table:truncate table不仅是删除表里面的数据,而且还会清空表里面主键的标识。
2、delete * from:delete * from仅仅能删除数据,不能清空标识。
三、触发器不同
1、truncate table:truncate table不会激发触发器。
2、delete * from:delete * from会激发触发器。
1、DROP删表,表结构将删了,当然数据也不存在了
2、TRUNCATE和DELETE删数据,表结构还在
3、DELETE可以带条件删除,TRUNCATE是全部删除
4、DELETE删除会写日志,TRUNCATE不写
5、DELETE效率低,数据可以恢复,TRUNCATE效率高,数据不可恢复
truncate table 不仅是删除表里面的数据,而且还会清空表里面主键的标识。也就是说使用过truncate table 的表在重新写入数据的时候,标识符会从0或1重新开始(看你设置的种子号)。
delete * from就是仅仅能删除数据,不能清空标识。不过delete * from可以后面加Where truncate table却不能加Where。。