首先,我们看下传统的方法:
--删除整个表数据
SET STATISTICS TIME ON;
DECLARE @Timer DATETIME = GETDATE();
TRUNCATE TABLE LOG_DEBUG_ERROR ;
SELECT DATEDIFF(MS, @Timer, GETDATE()) AS [执行时间(毫秒)];
SET STATISTICS TIME OFF;
select * from SYS_PERFORMANCE
不可以添加where
删除后自增id从1开始
转自sqlserver快速删除整个表数据 - 听浪 - 博客园
第二,在没有找到这篇文章之前,我都是这样操作的:
select * into tablenew from tableold where no=1
alter table tablenew
delete from tablenew where no=1
不过请注意,我这种方法并不是真的删除了表里的数据,而是创建了一个新表,
新表中除了没有数据,其他结构都将和原表一致。
第三,是最简单但是执行速度最慢的方法:
delete from 表名
总结:
想要直接删除原表数据,可以用法1;
想要根据列名重新创建一个表,可以用法2;
在数据不多的情况下,用法3。