共同点:

二者只会删除表中的数据而不删除表的结构。

区别:

1.当删除表中的所有记录时,truncate与不带where限制的delete语句作用是等效的

truncate table 表名

delete from  表名

2.如果要删除表中的部分记录只能用delete

delete from  表名 where 

3.truncate的删除速度要比delete快;delete语句每次删除一行,并在事务日志中为删除的行记录一个项,truncate table通过释放用于存储表数据的数据页来删除数据,并在事务日志中只记录页释放。

4.对于由foreign key约束的表;参与索引视图的表;不能用truncate来删除,只能用delete