SQL語句清空所有table中的記錄

2021-08-25 16:31:41 字數 1099 閱讀 2950

-----此處不用truncate是因為truncate必須得刪除外來鍵,如果不考慮外來鍵的話最好用truncate

----禁用當前資料庫中所有表的約束、觸發器

exec sp_msforeachtable 'alter table ? disable trigger all'

exec sp_msforeachtable 'alter table ? nocheck constraint all'

go----清空除employee、department、account外的所有表中的記錄

begin

declare crsr cursor ------定義游標取回使用者建立的表

for select [name] from dbo.sysobjects

where objectproperty(id,n'istable')=1 and type = 'u' and ([name] <> 'dtproperties'

and [name] <> 'account' and [name] <> 'employee' and [name]<>'department' )

declare @tblname sysname ------使用者表名

open crsr

fetch crsr into @tblname

exec(' delete from dbo.'+@tblname)

print @tblname

while @@fetch_status=0

begin

fetch next from crsr into @tblname

exec('delete from dbo.'+@tblname)

print @tblname

end

close crsr

deallocate crsr

endgo

----啟用當前資料庫中所有表的約束、觸發器

exec sp_msforeachtable 'alter table ? enable trigger all'

exec sp_msforeachtable 'alter table ? check constraint all'

sql語句快速清空表

對於sql清空表有三種清空方式 1.delete 是逐行刪除速度極慢,不適合大量資料刪除 2.truncate 刪除所有資料,保留表結構,不能撤消還原 3.drop 刪除表,資料和表結構一起刪除,快速 但是在實踐過程中我發現,1,2這兩種方法在處理大量資料的時候都比較慢,往往要等待許久才能清空完成。...

使用SQL語句清空資料庫所有表的資料

近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用sql語句一次清空所有資料.找到了三種方法進行清空.使用的資料庫為ms sql server.1.搜尋出所有表名,構造為一條sql語句 declare trun name varch...

使用SQL語句清空資料庫所有表的資料

近來發現資料庫過大,空間不足,因此打算將資料庫的資料進行全面的清理,但表非常多,一張一張的清空,實在麻煩,因此就想利用sql語句一次清空所有資料.找到了三種方法進行清空.使用的資料庫為ms sql server.1.搜尋出所有表名,構造為一條sql語句 trun name varchar 8000 ...