近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用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'andstatus
>
0exec
(@trun_name)
該方法適合表不是非常多的情況,否則表數量過多,超過字串的長度,不能進行完全清理.
2.利用游標清理所有表
declare
@trun_name
varchar(50
)declare
name_cursor
cursor
forselect
'truncate table '+
name
from
sysobjects
where
xtype='
u'andstatus
>
0open
name_cursor
fetch
next
from
name_cursor
into
@trun_name
while
@@fetch_status=0
begin
exec
(@trun_name
'truncated table '+
@trun_name
fetch
next
from
name_cursor
into
@trun_name
endclose
name_cursor
deallocate
name_cursor
這是我自己構造的,可以做為儲存過程呼叫, 能夠一次清空所有表的資料,並且還可以進行有選擇的清空表.
3.利用微軟未公開的儲存過程
exec
sp_msforeachtable "
truncate
table?"
該方法可以一次清空所有表,但不能加過濾條件.
ps:假如有主外來鍵的話,可能會有問題。主外來鍵的關聯也清除掉了
使用SQL語句清空資料庫所有表的資料
近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用sql語句一次清空所有資料.找到了三種方法進行清空.使用的資料庫為ms sql server.1.搜尋出所有表名,構造為一條sql語句 trun name varchar 8000 ...
使用SQL語句清空資料庫所有表的資料
近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用sql語句一次清空所有資料.找到了三種方法進行清空.使用的資料庫為ms sql server.1.搜尋出所有表名,構造為一條sql語句 該方法適合表不是非常多的情況,否則表數量過多,...
使用SQL語句清空資料庫所有表的資料
近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用sql語句一次清空所有資料.找到了三種方法進行清空.使用的資料庫為ms sql server.1.搜尋出所有表名,構造為一條sql語句 declare trun name varch...