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;

...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章