还原数据库时数据库被占用导致的还原失败解决方案
来源:互联网 发布:广告软件 编辑:程序博客网 时间:2024/05/17 03:49
还原数据库时,碰到下面错误的解决方案:
System.Data.SqlClient.SqlError: 因为数据库正在使用,所以无法获得对数据库的独占访问权。 (Microsoft.SqlServer.Smo)
1. 比较直接的重启下Sql Server服务即可,此方案适合在普通个人电脑,或者电脑上只有这一个重要数据库的情况使用;
2.如果该数据库是服务器,上面有很多重要的数据库,不可能因为一个数据库把所有数据库的连接都断掉,可采用下面方案
在master数据库创建下面存储过程,作用:清除所有使用该数据库的会话;
USE masterGOCREATE PROC [dbo].[sp_ClearDbConnections] @DbName VARCHAR(30) AS--清除某个数据库的所有数据库连接 DECLARE @SPID INT DECLARE @SqlForClear NVARCHAR(100) DECLARE curID CURSOR FORWARD_ONLY READ_ONLY FOR ( SELECT SPID FROM Master.dbo.SysProcesses WHERE DB_Name(DBID) = @DbName) OPEN curID FETCH NEXT FROM curID INTO @SPID WHILE @@Fetch_Status = 0 BEGIN SET @SqlForClear = N'KILL ' + Cast(@SPID AS NVARCHAR(10)) EXEC sp_ExecuteSql @SqlForClear IF @@Error = 0 PRINT '已清除连接:' + Cast(@SPID AS VARCHAR(10)) FETCH NEXT FROM curID INTO @SPID END CLOSE curID DEALLOCATE curID PRINT '对数据库“' + @DbName + '”的连接清除操作完毕'GO
之后执行该存储过程,清除使用该数据库的所有连接,再次还原(操作间隙时间要尽量短,避免在这个间隙又有连接进来);
exec sp_ClearDbConnections '要还原的数据库名称'
1 0
- 还原数据库时数据库被占用导致的还原失败解决方案
- 数据库还原时提示被占用错误解决
- SQL2005还原SQL2000的数据库(.bak)时,还原数据库时,对文件目录查找失败
- SqlServer数据库正在还原的解决方案
- sql server 还原数据库失败
- CQ数据库的还原
- 数据库的还原问题
- 还原数据库的sql
- 还原备份的数据库
- 数据库还原
- 数据库还原
- 还原数据库
- 数据库还原
- 还原数据库
- 数据库还原
- 还原数据库
- 数据库还原
- 还原数据库
- vim自动对齐
- launch failed binary not found---eclipse c++ linux
- Python学习笔记:01 环境搭建和“Hello World!”
- java学习笔记 access modifier 访问修饰符作用
- 《STL源码剖析》—— stl_config.h
- 还原数据库时数据库被占用导致的还原失败解决方案
- 五指山nefu84
- 【离散化】poj1083 Moving Tables
- 小P的故事——买药。。
- u盘安装win7系统
- 常用js验证
- uva 113 power of Cryptography
- 784 - Maze Exploration(bfs)
- 2014-02-12C#读书笔记