因为数据库正在使用,所以无法获得对数据库的独占访问权

方法一:更改数据库状态

USE Master
ALTER DATABASE [XXX] SET OFFLINE

-- sql do something
ALTER DATABASE [XXX] SET OnLINE
use XXX

 

方法二:杀掉数据库进程

declare @dbname varchar(20)
set @dbname='XXX'
declare @sql nvarchar(500)
declare @spid int  --SPID 值是当用户进行连接时指派给该连接的一个唯一的整数
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--如果FETCH 语句没有执行失败或此行不在结果集中。
begin
exec('kill
'+@spid)--终止正常连接
fetch next from getspid into @spid
end
close getspid
deallocate getspid

 

据网友说还有其它方法如更改数据库登录角色,从sql server 登录更改为 windows登录,因本人未亲测,所以在此不作详述,若有其他方法,可留言探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值