1. 程式人生 > >mssql sqlserver 使用sql指令碼 清空所有資料庫表資料的方法分享

mssql sqlserver 使用sql指令碼 清空所有資料庫表資料的方法分享

摘要: 下文講述清空資料庫中所有表資訊的方法分享,如下所示: 實驗環境:sql server 2008


實現思路: 1.禁用所有約束,外來鍵 2.禁用所有觸發器 3.刪除表資料 4.開啟觸發器 5.開啟約束

CREATE PROCEDURE proc_deleteDateSql
 /*
  生成清除資料庫表資料的指令碼方法分享
 */
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


--生成指令碼資訊
exec proc_deleteDateSql 

go

drop proc  proc_deleteDateSql 
go

此方法請謹慎使用,因為執行後,會導致所有資料丟失,並且不可恢復, 如出現外來鍵約束,最好先刪除外來鍵資訊,

如:批量刪除MSSQL 中主外來鍵約束

轉自:http://www.maomao365.com/?p=7544