• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cynchanpin

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

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

在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

 

posted on 2017-07-14 15:15  cynchanpin  阅读(181)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3