清空資料庫的方法

2021-06-07 12:58:26 字數 1503 閱讀 8324

近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用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

(550

)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

)print

'truncated table '+

@trun_name

fetch

next

from

name_cursor

into

@trun_name

endclose

name_cursor

deallocate

name_cursor

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

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

exec

sp_msforeachtable "

truncate

table?"

--刪除當前資料庫所有表中的資料

sp_msforeachtable @command1='delete from ?'

sp_msforeachtable @command1 = "truncate table ?"

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

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

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

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

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

清空收縮資料庫日誌檔案的方法

操作乙個資料庫時,程式提示資料日誌過大 開啟資料檔案存放的目錄檢查,發現ldf檔案已經達到了2g多。清除的方法是我在網上看到的,試了一下,達到要的效果,完成之後ldf檔案只有100m不到。操作之前請做好備份。我的操作是在查詢分析器中完成,操作方法如下 1 dump transaction datab...