您的位置:首页 > 数据库

还原数据库出现“未获得排他訪问”解决方法(杀死数据库连接的存储过程sqlserver)

2017-07-14 15:15 537 查看
在master数据库下创建存储步骤例如以下:

createproc killspid
(@dbnamevarchar(20))

as

begin

declare@sqlnvarchar(500)

declare@spidint

set@sql='declare
getspid cursor for select spid from sysprocesses where dbid in (select dbid from sysdatabases where name=' +@dbname+' )'

exec(@sql)

open getspid

fetch next from getspid into@spid

while @@fetch_status<>-1

begin

exec('kill
'+@spid)

fetch next from getspid into@spid

end

close getspid

deallocate getspid

end

--使用方法
use master

exec killspid '''数据库名'''

单引號嵌套

用三个单引號的作用,最外层的单引號表示vchar。第二个单引號是转义。最里面的单引號是字符串中的单引號。declare @dbname nvarchar(500)

set @dbname='''zcc''' --得到的变量为'zcc'。
set @dbname='zcc' --得到的变量是zcc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐