数据库正在使用,恢复备份失败的解决办法

本文介绍了一个SQL Server存储过程,用于批量关闭指定数据库的所有活跃进程,通过执行`kill`命令来实现这一操作。

 

/*  
断开所有用户打开的连接 
*/ 
use master 
go 

if  exists ( select  *  from dbo.sysobjects  where id  =  object_id(N ' [dbo].[p_killspid] 'and  OBJECTPROPERTY(id, N ' IsProcedure '=  1
drop  procedure  [ dbo ]. [ p_killspid ] 
GO 

create  proc p_killspid 
@dbname sysname  -- 要关闭进程的数据库名 
as 
declare  @s  nvarchar( 1000
declare tb  cursor local  for 
select s = ' kill  ' + cast(spid  as  varchar
from master..sysprocesses 
where dbid = db_id( @dbname

open tb 
fetch  next  from tb  into  @s 
while  @@fetch_status = 0 
begin 
exec( @s
fetch  next  from tb  into  @s 
end 
close tb 
deallocate tb 
go 

-- 用法 
exec p_killspid  ' hj ' 

 

来自:http://www.cnblogs.com/xy6521/articles/1364065.html

个人学习收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值