转载自 分享
方法一:
(truncate table 表名)
有弊端容易出错,只有表中的没有数据的时候方可用之,一旦有数据则会产生错误。
方法二:
存储过程如下:
CREATE PROCEDURE DeleteAll
AS
begin
declare @name nvarchar(50)
declare @sql nvarchar(50)
declare TableName CURSOR
FOR (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE ='BASE TABLE')
open TableName
fetch next from TableName into @name
while (@@fetch_status=0)
begin
select @sql = 'delete ' + @name
print @sql
execute sp_executesql @sql --删除表的数据
DBCC CHECKIDENT(@name,reseed,1) --重新设置ID种子
fetch next from TableName into @name
end
close TableName
DEALLOCATE TableName
end
GO
虽然繁琐一些但是在编程过程中如果用到的话,还是这个比较实用。

本文对比了SQL中两种常用的数据清空方法:简单截断表(TRUNCATE TABLE)和存储过程实现全表删除。前者操作速度快但仅在表无数据时有效;后者虽然流程复杂,但在编程中更为实用,能确保数据的彻底清除并重置ID种子。
6207

被折叠的 条评论
为什么被折叠?



