標籤:sql server 清空資料庫所有表資料
1、清空SQL Server資料庫中所有表資料
(1)編寫預存程序指令碼:
CREATE PROCEDURE sp_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
說明:
預存程序sp_MSForEachTable :迴圈檢查所有的表(微軟官方文檔)。
指令碼建立了一個命名為sp_DeleteAllData的預存程序,前面兩行語句分別禁用約束和觸發器,第三條語句才是真正地刪除所有資料,接下裡的語句分別還原約束和觸發器,最後一條語句是顯示每個表中的記錄,確認是否清空了所有的表資料。
(2)查詢出資料庫所有表,使用truncate語句逐個刪除表資料:
首先使用select語句查詢出資料庫中所有表名
SELECT name FROM SysObjects Where XType=‘U‘ ORDER BY Name
查詢到預設當前資料庫下面的所有表名,如果需要查詢其它資料庫下的表,加上Where 條件 name = [dbname]
然後使用truncate或delete語句逐個刪除表資料
truncate table order_buyer;
truncate table order_seller;
truncate table receivelist;
...
本文出自 “sharemi” 部落格,請務必保留此出處http://sharemi.blog.51cto.com/11703359/1790643
SQL Server 如何清空資料庫所有表資料