mssql sqlserver drop、delete、truncate 不同点分析


用户想删除表数据可以借助以下三个关键字 drop delete truncate,
drop 加create关键字等同于truncate 关键字
delete 关键字不带where 等同于truncate关键字


三种不同的关键字之间的区别共以下几点

1、删除内容

truncate和delete关键字只会清理表中的数据不会对表结构产生任何影响
drop关键字会删除表结构、依赖的约束、索引以及触发器,我们还需要通过create关键字来恢复表结构,表其它信息。
—–
如果表被丢弃掉,那么我们清理数据时,最好使用drop关键字,
否则使用 truncate 或 delete 清理表数据



2、删除空间

truncate drop 会释放表空间
delete删除操作,不会使表空间得到改变

3、语句类型

delete 删除操作,事务提交后,再回生效,也可以通过rollback回滚
truncate drop 属于数据库层面的表结构语言,无法回滚

4、执行效率

drop > truncate > delete

5、关键字操作的安全性

drop truncate 会使表中数据完全消失,并且无法回滚
delete 删除大数据,可能会导致磁盘被占满,而产生异常