Rob*_*ker 78
查看truncate table,它快得多.
Ron*_*fca 33
我在msdn transact-SQL引用中发现了TRUNCATE TABLE.对于所有感兴趣的人都是这里的评论:
TRUNCATE TABLE在功能上与DELETE语句完全相同,没有WHERE子句:两者都删除表中的所有行.但是TRUNCATE TABLE比DELETE更快并且使用更少的系统和事务日志资源.
DELETE语句一次删除一行,并在事务日志中为每个已删除的行记录一个条目.TRUNCATE TABLE通过释放用于存储表数据的数据页来删除数据,并且只有页面解除分配记录在事务日志中.
TRUNCATE TABLE从表中删除所有行,但表结构及其列,约束,索引等仍然存在.标识用于新行的计数器将重置为列的种子.如果要保留身份计数器,请改用DELETE.如果要删除表定义及其数据,请使用DROP TABLE语句.
您不能在FOREIGN KEY约束引用的表上使用TRUNCATE TABLE; 相反,使用不带WHERE子句的DELETE语句.由于未记录TRUNCATE TABLE,因此无法激活触发器.
TRUNCATE TABLE不能用于参与索引视图的表.
squ*_*tte 15
TRUNCATE以某种方式跳过事务日志有一个共同的神话.
这是误解,在MSDN中明确提到.
在这里的几条评论中引用了这个神话.让我们一起根除它;)
我使用以下方法将表清零,额外的好处是它为我留下了表的存档副本。
CREATE TABLE `new_table` LIKE `table`;
RENAME TABLE `table` TO `old_table`, `new_table` TO `table`;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56888 次 |
| 最近记录: |