【SQL Server】批量删除指定数据库

连接数据库

命令行  sqlcmd -U sa -P Pass@word -S 127.0.0.1 -d master -i  sql脚本路径

关闭数据库连接(转载连接:http://www.cnblogs.com/kglovekk/p/9556786.html)

use master  
GO
create proc KillSpByDbName(@dbname varchar(20))   
as   
begin   
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int   
set @sql='declare getspid cursor for   
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'   
exec (@sql)   
open getspid   
fetch next from getspid into @spid   
while @@fetch_status<>-1   
begin   
  set @temp='kill '+rtrim(@spid)
  exec(@temp)
fetch next from getspid into @spid   
end   
close getspid   
deallocate getspid   
end  

删除数据库

上述KillSpByDbName需要先进行初始化,否则关闭连接失败

-- KillSpByDbName初始化
Exec KillSpByDbName 'isnull'
GO

然后执行数据库删除

if exists(select * from sysdatabases where name='数据库1')
    Exec KillSpByDbName '数据库1'
    drop database 数据库1
GO

if exists(select * from sysdatabases where name='数据库2')
    Exec KillSpByDbName '数据库2'
    drop database 数据库2
GO

......

你可能感兴趣的:(【SQL Server】批量删除指定数据库)