还原数据库时断开所有连接用户

Exclusive access could not be obtained because the database is in use.

参考http://blog.itpub.net/post/5632/28520《6.3.2 断开用户连接》,原文USP_KILLUSERS用于SQL Server 2000,小改一处,即可用于SQL Server 2005,如下

  CREATE PROCEDURE   usp_KillUsers   @dbname   varchar(50)   as     SET   NOCOUNT   ON         DECLARE   @strSQL   varchar(255)     PRINT   'Killing   Users'     PRINT   '-----------------'         CREATE   table   #tmpUsers(     spid   int,     eid   int,     status   varchar(30),     loginname   varchar(50),     hostname   varchar(50),     blk   int,     dbname   varchar(50),     cmd   varchar(30),   request_id int  )       INSERT   INTO   #tmpUsers   EXEC   SP_WHO             DECLARE   LoginCursor   CURSOR     READ_ONLY     FOR   SELECT   spid,   dbname   FROM   #tmpUsers   WHERE   dbname   =   @dbname         DECLARE   @spid   varchar(10)     DECLARE   @dbname2   varchar(40)     OPEN   LoginCursor         FETCH   NEXT   FROM   LoginCursor   INTO   @spid,   @dbname2     WHILE   (@@fetch_status   <>   -1)     BEGIN     IF   (@@fetch_status   <>   -2)     BEGIN     PRINT   'Killing   '   +   @spid     SET   @strSQL   =   'KILL   '   +   @spid     EXEC   (@strSQL)     END     FETCH   NEXT   FROM   LoginCursor   INTO     @spid,   @dbname2     END         CLOSE   LoginCursor     DEALLOCATE   LoginCursor         DROP   table   #tmpUsers     go  

--EXEC usp_KillUsers   YOURDBNAME

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值