truncate删除数据deletetable和truncatetable
使⽤delete语句删除数据的⼀般语法格式:
delete [from]
{table_name、view_name}
[where<search_condition>]
将XS表中的所有⾏数据删除
delete XS
执⾏完后,发现XS表中的数据都删除了,但是表的结构什么都还在。
truncate
truncate table语句将删除指定表中所有数据,因此也称其为清除表数据语句,⼀般格式如下
truncate table name
由于truncate语句将删除表中的所有数据,且⽆法恢复,因此使⽤时必须⼗分⼩⼼。
使⽤truncate table删除了指定表中的所有⾏,但表的结构及其列,约束,索引等保持不变,⽽新⾏标识所⽤的计数值重置为该列的初始值。如果想保留标识计数值,则要使⽤DELETE语句。
TRUNCATE TABLE执⾏速度⽐DELETE块,且使⽤的系统和事务⽇志资源少。DELETE语句每次删除⼀⾏,并在事务⽇志中为所删除的每⾏记录⼀项。⽽TRUNCATE TABLE通过释放存储表数据所⽤的数据页来删除数据,并且只在事务⽇志中记录页的释放。
对于有外键约束引⽤的表,不能使⽤TRUNCATE TABLE删除数据,⽽应该使⽤布袋WHERE⼦句的DELETE语句。另外TRUNCATE TABLE也不能⽤于参与了索引视图的表。