错误"因为数据库正在使用,所以无法获得对数据库的独占访问权"的解决方案(转)

引发原因:是因为我在还原数据库的时候,还有其他的用户正在使用数据库,所以就会出现以上提示。

解决方法:
1,设置数据库在单用户模式下工作。
设置方法:在需要还原的数据库上右击,在右键菜单命令上选择"属性"- >"选项"- >"状态"- >"限制访问"- >"Single"。这是SQLSERVER2005的菜单命令,其它版本请自己查找。

2,利用SQL语句,杀死正在使用该数据库的所有进程,自己以前在做一个SQL SERVER操作小工具的时候有写过该功能的SQL,贴出来供大家参考:

declare @dbname varchar(50)
set @dbname=‘数据库名称‘
declare @sql varchar(50)
declare cs_result cursor local for select ‘kill ‘+cast(spid as varchar(50)) from sys.sysprocesses where db_name(dbid)[email protected] 
open cs_result
fetch next from cs_result into @sql
while @@fetch_status=0
begin
    execute(@sql)
    fetch next from cs_result into @sql
end
close cs_result
deallocate cs_result

该SQL语句利用游标循环所有正在使用该数据库的进程,并通过kill命令杀死进程。

3,利用SQL语句,断开所有用户链接,并回滚所有事务,具体SQL语句如下:

ALTER DATABASE [数据库名称] 
SET OFFLINE WITH ROLLBACK IMMEDIATE

注意:在使用方法2与3时,不要在需要的还原的数据库下执行,建议在master数据库下面执行。

时间: 2024-10-15 09:48:04

错误"因为数据库正在使用,所以无法获得对数据库的独占访问权"的解决方案(转)的相关文章

sharepoint 2013 打开rdl报表,报表服务器数据库内出错。此错误可能是因连接失败、超时或数据库中磁盘空间不足而导致的

 最近在做reporting services报表的时候,部署到sharepoint后,打开rdl报表,经常遇到一个问题: 报表服务器数据库内出错.此错误可能是因连接失败.超时或数据库中磁盘空间不足而导致的. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException: 报表服务器数据库内出错.此错误可能是因连接失败.超时或数据库中磁盘空间不足而导致的. ---> System.Da

文献名:Repeat-Preserving Decoy Database for False Discovery Rate Estimation in Peptide Identication (用于肽段鉴定中错误发生率估计的能体现重复性的诱饵数据库)

文献名:Repeat-Preserving Decoy Database for False Discovery Rate Estimation in Peptide Identication (用于肽段鉴定中错误发生率估计的能体现重复性的诱饵数据库) 期刊名:Journal of Proteome Research 发表时间:(2020年3月) IF:3.78 单位: 滑铁卢大学计算机科学学院 多伦多细胞生物学和SPARC生物项目中心 多伦多大学分子遗传学系 技术:肽段鉴定,诱饵数据库构建 一

mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法

mssql server 2005还原数据库bak文件,网站使用虚拟主机建站会经常遇到,一般情况下,主机商有在线的管理程序,但有时候没有的话,就需要本地还原备份sql数据库了.这种情况mssql server 2008也同样会出现,有时候会出现“备份集中的数据库备份与现有的xx数据库不同”的错误提示,本文也一并把解决方法说道说道. 第一部分,mssql server 2005(2008)还原数据库bak文件. 一.连接上数据库,右键数据库,选择新建数据库,输入你要还原数据库的名称. 二.确定后右

Oracle数据库名、实例名、数据库域名、数据库服务名、全局数据库名的辨析

我也是看着各位大婶的博客然后一点点的来学习,不求全会,留个印象 数据库名 数据库名就是一个数据库的标识,用参数DB_NAME表示. 如果一台机器上安装了多个数据库,那么每一个数据库都有一个数据库名. 查看当前数据库名 select name from v$database; show parameter db; 查看参数文件 数据库名在一开始准备建库的时候就应该考虑好,不要等到后面才来该数据库名,这样会很麻烦.也容易出问题. 数据库实例名 数据库实例名是操作系统和数据库进行交互时所用到的名称.

[SQL]复制数据库某一个表到另一个数据库中

SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * INTO [IMCDB].[dbo].[SysLog] FROM [AimManageDB].[dbo].[SysLog] (将数据库AimManageDB中的SysLog表复制到数据库IMCDB中) 跨服务器复制表 select * INTO [SMSDB].[dbo].[SysLog] FROM

2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理

 Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan/article/details/39565783 如果行想进数据库开发,需要安装libqt5sql5-mysql.命令是: sudo apt-get install libqt5sql5-mysql 4 创建一个项目 要调用数据库,需要加上QT += gui widgets sql  也就是说要加

MySQL数据库的优化(下)MySQL数据库的高可用架构方案

MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQL数据库的优化,今天我们继续跟随笔者学习MySQL优化的集群方案. AD:51CTO 网+首届APP创新评选大赛火热启动——超百万资源等你拿! [51CTO独家特稿]在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQL数据库的优化,今天我们继续跟随笔者学习MySQL优化的集群方案. M

项目经验——Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员” .

在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两天用户测试我们做的评教系统小软件,有点问题我们过去看了看,想将他们的测试数据备份一下,以便我们修改软件测试使用. 我是这样备份的,数据库备份默认有一个路径:C\...,而我又添加了一个新路径,没将默认路径删除,而是选中新路径,我就理所当然的认为数据库中的数据备份到我新加的路径下了. 今天还原数据库时

mysql 数据库授权(给某个用户授权某个数据库)

先设置该用户只有show database权限 grant select,insert,update,delete on redmine1.* to [email protected]"%" identified by "jira"; 新增超级权限并允许远程访问: GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FL