Sql Server强制清空所有数据表中的记录

时间:2021-01-22 12:06:49

在研究activiti的过程中,有时想清空整个库中的数据,但用delete或者truncate命令清空表的时候,经常会遇到各种约束的提示,操作木有办法清除数据,
于是上网找了一个存储过程,分享一下:

CREATE PROCEDURE [dbo].[PROC_DeleteAllData]
AS

--关闭约束
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

--关闭触发器
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'

--清空表
EXEC sp_MSForEachTable 'DELETE FROM ?'

--启用约束
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

--启用触发器
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'

--查询库中数据
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'
GO

作者:jiankunking 出处:http://blog.csdn.net/jiankunking