清空資料庫中所有表資料的簡潔方法

2021-05-26 06:32:21 字數 1023 閱讀 8927

1.搜尋出所有表名,構造為一條sql語句

複製** **如下:

declare @trun_name varchar(8000)

set @trun_name=''

select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='u' and status > 0

exec (@trun_name)

該方法適合表不是非常多的情況,否則表數量過多,超過字串的長度,不能進行完全清理.

2.利用游標清理所有表

複製** **如下:

declare @trun_name varchar(50)

declare name_cursor cursor for

select 'truncate table ' + name from sysobjects where xtype='u' and status > 0

open name_cursor

fetch next from name_cursor into @trun_name

while @@fetch_status = 0

begin

exec (@trun_name)

print 'truncated table ' + @trun_name

fetch next from name_cursor into @trun_name

end

close name_cursor

deallocate name_cursor

這是我自己構造的,可以做為儲存過程呼叫, 能夠一次清空所有表的資料,並且還可以進行有選擇的清空表.

3.利用微軟未公開的儲存過程

複製** **如下:

exec sp_msforeachtable "truncate table ?"

該方法可以一次清空所有表,但不能加過濾條件.

詳細出處參考:

清空SQL Server資料庫中所有表資料的方法

原文 清空sql server資料庫中所有表資料的方法 其實刪除資料庫中資料的方法並不複雜,為什麼我還要多此一舉呢,一是我這裡介紹的是刪除資料庫的所有資料,因為資料之間可能形成相互約束關係,刪除操作可能陷入死迴圈,二是這裡使用了微軟未正式公開的sp msforeachtable儲存過程。也許很多讀者...

Sqlserver清空資料庫中所有表資料

指令碼 1 create procedure sp deletealldata2as 3exec sp msforeachtable alter table nocheck constraint all 4 exec sp msforeachtable alter table disable tri...

清空SQL Server資料庫中所有表資料的方法

其實刪除資料庫中資料的方法並不複雜,為什麼我還要多此一舉呢,一是我這裡介紹的是刪除資料庫的所有資料,因為資料之間可能形成相互約束關係,刪除操作可能陷入死迴圈,二是這裡使用了微軟未正式公開的sp msforeachtable儲存過程。也許很多讀者朋友都經歷過這樣的事情 要在開發資料庫基礎上清理乙個空庫...