Sql Server強制清空所有資料表中的記錄

衣舞晨風發表於2016-04-23

在研究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

相關文章