接了個活,要從原來的資料 庫里導資料。
一看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...