sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

如题所述

第1个回答  2019-12-05
这个问题的原因在于有用户连接了当前要做还原的数据库,这里的用户甚至包括当前要做还原的用户。解决办法就是关闭与要还原数据库的所有连接。
脚本之家小编推荐的一个方法:到服务里面重启下sqlserver服务即可。
问题一描述:SQL
Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样
问题二描述:在对SQL
Server数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权。(Microsoft.SqlServer.Smo)。出现此问题的原因是在还原数据库时,有其他用户正在使用数据库。还原数据库要求数据库工作在单用户模式。通常就是DBA在操作时,不允许其他用户连接数据库。
问题一解决办法:
右键点击数据库
->
属性
->
选项
->
状态
->
限制访问
->
选择Multiple
->
确定。
问题二解决办法:
方法一(最方便):右键点击数据库
->
属性
->
选项
->
状态
->
限制访问
->
选择Single->
确定。然后还原。
方法二(最直接):断开数据库连接
方法三(最暴力):注销/重启数据库服务器
方法四(最麻烦):写代码修改数据库相关属性,虽然麻烦,有的时候还是要用到,那就用到的时候再研究。
①先切换数据库到master数据库。执行语句
select
*
from
master..sysprocesses
where
dbid=db_id(
'数据库名称')
②然后逐步运行语句
exec
kill
spid(上一步结果集中的数据),
问题就解决了。哈哈
今天在还原数据库的时候,提示"因为数据库正在使用,所以无法获得对数据库的独占访问权",无论我是重启数据库,还是重启计算机,都不能解决问题,多番尝试后,终于解决了该问题。现将引发该问题的原因与解决方案写出来,有不对的地方欢迎大家提出来。
引发原因:是因为我在还原数据库的时候,还有其他的用户正在使用数据库,所以就会出现以上提示。
解决方法:
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)=@dbname
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数据库下面执行。

SQL Server数据库还原常见问题处理
问题一:数据还原时提示“因为数据库正在使用,所以无法获得对数据库的独占访问权”。解决步骤如下:1. 停止服务:找到“World Wide Web Publishing Service”服务并将其停止。2. 数据还原:在执行数据还原时,确保勾选“覆盖现有数据库”选项,并修改还原文件路径。问题二:数据还原提示“介质集有2个介质...

...server 还原数据库时提示数据库正在使用,无法进行操作的解决方法
方法一(最方便):右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -> 选择Single-> 确定。然后还原。方法二(最直接):断开数据库连接 方法三(最暴力):注销\/重启数据库服务器 方法四(最麻烦):写代码修改数据库相关属性,虽然麻烦,有的时候还是要用到,那就用到的时候再研究。①...

【数据库】还原SQL Server 数据库常见的问题
解决这个问题的步骤很简单:首先,利用sp_who2查询出当前连接的SPID(Server Process ID),然后使用kill命令针对性地关闭这些SPID。这样,你就可以继续进行数据库还原了。如果只有一两个SPID需要处理,逐个kill可能相对轻松。但如果有大量的SPID,如几十个甚至几百个,手动操作效率低下,这时需要采取更有效...

sqlserver2012数据库提示正在还原和停止(sql2008数据库显示正在...
找到无法还原的数据库,右键-属性 数据库属性页面,点击左侧的‘选项’点开状态,找到限制访问,修改选择值,把原来的multi_user,改成single_user,点击确定,保存修改 修改保存后,刷新数据库列表,可以看到该数据库后面已经显示‘单个用户’这个时候,在重新还原数据库,应该就可以成功了 ...

.net(c#)还原sql server 2005数据库,出错因为数据库正在使用,所以无法...
cmd.ExecuteNonQuery();con.Close();你是在它执行之后才释放,当然会一样的出现访问无效,建议停止这个sqlserver的服务才去还原,如果你知道停止sqlserver进程的代码也可以!

sql server 2008还原数据库数据库正在使用怎么还原
正在使用中的,需要先断开数据库的外部连接,然后停止使用,才能进行还原操作。

sql数据库恢复失败,正在使用?
正在使用是不能恢复的 如果是sql server exec sp_who,看一下什么程序或者哪一个人在占用数据库

db2自动备份求助,报错sql1035n,数据库正在使用
首先打开SQL Server企业管理器,点击菜单 工具,选择 SQL查询分析器。在查询分析器中输入SQL脚本,“backup log [要操作的数据库] with no_log”,然后执行该语句。程序提示命令已成功完成后,退出该应用程序 回到SQL Server企业管理器,右键单击数据库,在弹出菜单中选择所有任务,收缩数据库。

SQL SERVER 2005 数据库名后显示(正在恢复\/只读),不能使用而且无法删除...
数据库名后显示(正在恢复\/只读)。 表示 当前库正在恢复中。或者是只读的。 确定你的数据库在你的主机中,再有可以试着修改它的状态。

为什么sqlserver连接数据库提示无法连接数据库
出现此问题的原因是:计算机设置错误造成的。解决的方法和操作步骤如下:1、首先,当未启动SQL Server服务时,SQL Server管理器将无法连接到数据库服务,并且将出现以下提示,如下图所示。2、其次,解决方案:右键单击“计算机”-->“管理”,如下图所示。3、接着,完成上述步骤后,双击“服务和应用程序...

相似回答
大家正在搜