- Truncate: 是一种DDL操作,不会记录日志,不可回滚,而且不会触发trigger,性能要快些;
但是需要小心使用;
- Delete: 是一种DML操作,可以回滚,而且出发tirigger,性能要慢些;
- Note:
1. Truncate 不能用于表变量;
declare @TempTable table(ID INT)
truncate table @TempTable
--parse error
2. 可以用于临时表
create table #Temp (ID int)
truncate table #Temp
--prase right
本文详细解释了数据库操作中Truncate与Delete的区别。Truncate作为DDL操作,速度快但不记录日志且无法回滚;而Delete作为DML操作,虽然速度较慢但支持回滚并能触发触发器。此外还介绍了这两种操作的适用场景及其限制。
3641

被折叠的 条评论
为什么被折叠?



