zoukankan      html  css  js  c++  java
  • SQL2005原数据库(因为数据库正在使用,所以无法获得对数据库的独占访问权)解决方案

    在还原数据库时,有时会提示因为数据库正在使用,所以无法获得对数据库的独占访问权!!
    这时需要在还原数据库前先杀死正在使用数据库得线程.

    该解决方案用到了系统表中的sysprocesses ,若要访问 sysprocesses,您必须定位到master 数据库。

    如以下杀死正在使用'jcjq'数据库的线程:
    use master
    declare @dbname varchar(20)
    set @dbname='数据库名称'

    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

  • 相关阅读:
    MyEclipse和Eclipse非常方便的快捷键
    java面试题及答案
    Java笔试题解答
    Spring自定义注解
    Spring MVC上传文件
    JS实现购物车特效
    MySQL软件基本管理
    初识数据库
    Python3-IO模型
    Python3-协程
  • 原文地址:https://www.cnblogs.com/yasin/p/1778963.html
Copyright © 2011-2022 走看看