TRUNCATE
它和在目标表上进行无条件的DELETE有同样的效果,但由于TRUNCATE不做表扫描,因而快得多。在大表上操作效果更明显。
TRUNCATE TABLE在功能上与不带WHERE子句DELETE语句相同:二者均删除表中的全部行。
TRUNCATE TABLE比DELETE速度快且使用系统和事务日志资源少:
- TRUNCATE TABLE通过释放存储表数据所用数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE,DELETE,DROP三者的差异如下:
- TRUNCATE TABLE,删除内容,释放空间,但不删除定义。
- DELETE TABLE,删除内容,不删除定义,不释放空间。
- DROP TABLE,删除内容和定义,释放空间。
- 清理表数据。
- 清理表分区的数据。
table_name
取值范围:已存在的表名。
CONTINUE IDENTITY
不改变序列的值。这是缺省值。
CASCADE | RESTRICT
- CASCADE:级联清空所有由于CASCADE而被添加到组中的表。
- RESTRICT(缺省值):完全清空。
PURGE:默认将表数据放入回收站中,PURGE直接清理。
partition_name
目标分区表的分区名。
UPDATE GLOBAL INDEX
如果使用该参数,则会更新分区表上的所有全局索引,以确保使用全局索引可以查询出正确的数据;如果不使用该参数,则分区表上的所有全局索引将会失效。