使用SQL語句清空數據庫所有表的數據
系統(tǒng)
2305 0
原文:
使用SQL語句清空數據庫所有表的數據
近來發(fā)現數據庫過大,空間不足,因此打算將數據庫的數據進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用SQL語句一次清空所有數據.找到了三種方法進行清空.使用的數據庫為MS SQL SERVER.
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語句清空數據庫所有表的數據
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元