SqlServer强制断开数据库已有连接的方法

在执行建库脚本时,往往会先将原有的数据库drop掉,由于sqlserver检测到有数据连接时禁止执行drop database操作,所以建库脚本经常执行失败,为此我们需要一种能强制断开数据库已有连接的方法,可以过如下t-sql实现:


复制代码 代码如下:

declare @i int declare cur cursor for select spid from sysprocesses where db_name(dbid)= ‘your_database_name’ open cur fetch next from cur into @i while @@fetch_status=0 begin exec(‘kill ‘+@i) fetch next from cur into @i end close cur deallocate cur

我们可以把这条sql写到建库的批处理脚本里,放在脚本的开始:


复制代码 代码如下:

:: disconnect existing fortune database connections

osql -s”%1″ -u”%2″ -p”%3″ -q”declare @i int declare cur cursor for select spid from sysprocesses where db_name(dbid)= ‘ your_database_name ‘ open cur fetch next from cur into @i while @@fetch_status=0 begin exec(‘kill ‘+@i) fetch next from cur into @i end close cur deallocate cur”

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐