删除数据库中所有没有表的库

create table #temp 
(
	dbname nvarchar(50)
)

declare @xname nvarchar(50)
declare @rowCount int
declare mycur cursor for 
select name from sys.databases where owner_sid <> 0x01
open mycur
fetch next from mycur into @xname
while @@FETCH_STATUS = 0
	begin 
		exec('declare @rowCount int; select  @rowCount = COUNT(1) from  '+ @xname + '.sys.tables;'+
		'if @rowCount = 0'+
		'begin;'+
		'drop database '+@xname+
		';end ;' );
		fetch next from mycur into @xname
	end
close mycur
deallocate mycur
drop table #temp

posted @ 2010-10-26 13:47  mylhei  阅读(431)  评论(0编辑  收藏  举报