接了个活,要从原来的数据 库里导数据。
一看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
END
Drop Table #T
close my
DEALLOCATE my