刪除資料庫裡記錄數為0的表。 批量刪除表

2021-04-13 14:24:47 字數 911 閱讀 4536

接了個活,要從原來的資料 庫里導資料。

一看300多張表,仔細一看,200多個是一條記錄也沒有的。

暈死。

下面是如何刪除

--得到資料庫中所有表的空間/記錄情況  

create   table   #t(表名   sysname,記錄數   int  

,保留空間   varchar(10),使用空間   varchar(10)  

,索引使用空間   varchar(10),未用空間   varchar(10))  

insert   into   #t   exec   sp_msforeachtable   'exec   sp_spaceused   ''?'''  

--查詢沒有記錄的表名  

declare @tabname varchar(50)

declare my cursor  for  select   表名   from   #t   where   記錄數=0  

open my

fetch next from my into @tabname

while @@fetch_status = 0

begin

begin try

print '開始刪除表:'+@tabname

exec ('drop table '+@tabname)

print '成功刪除表: '+ @tabname

end try

begin catch

print '刪除表失敗:' + error_message()

end catch

fetch next from my into @tabname

enddrop   table   #t 

close my

deallocate my

如何批量刪除資料庫表?

可以通過執行如下的儲存過程來刪除資料庫表,以下儲存過程刪除的是所有表名以abc開頭的表 declare table nvarchar 30 declare tmpcur cursor for select name from sys.objects where type u and name lik...

SQL SERVER 批量刪除資料庫表

今天在做批量匯入大量表到資料庫去,有250個,但是前期需要做些測試工作,所以會需要進行表的刪除,但是呢,表太多了,不可能乙個乙個的刪除。所以在網上找了些批量刪除表的sql語句。當然這種刪除需要表的名字有相同的字首。網上的語句比較多,但是我試驗成功的只有幾個,其中的經驗和大家分享下 sql 1 dec...

批量刪除資料庫中所有表的記錄 清空資料庫

1.建立儲存過程 create procedure sp deletealldata as exec sp msforeachtable alter table nocheck constraint all exec sp msforeachtable alter table disable tri...