我在用delphi开发系统时用restore还原数据库时出现“数据库正在使用 所以未能获得对数据库的排它访问权”错误,是怎么事啊,哪位大哥能解决,一百分随你拿,

  • 主题发起人 主题发起人 xiongying
  • 开始时间 开始时间
X

xiongying

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用delphi开发系统时用restore还原数据库时出现“数据库正在使用 所以未能获得对数据库的排它访问权”错误,是怎么事啊,哪位大哥能解决,一百分随你拿,在先谢了 ( 积分: 100 )<br />我在用delphi开发系统时用restore还原数据库时出现“数据库正在使用 所以未能获得对数据库的排它访问权”错误,是怎么事啊,哪位大哥能解决,一百分随你拿,在先谢了
 
我在用delphi开发系统时用restore还原数据库时出现“数据库正在使用 所以未能获得对数据库的排它访问权”错误,是怎么事啊,哪位大哥能解决,一百分随你拿,在先谢了
 
让数据库以独占模式打开.
 
你的数据库正在使用,断开当前数据库的连接,选择其它数据库作为当前数据库,再做恢复工作.
 
让数据库以独占模式打开???
能不能说的更清一点
数据库怎么才能以独占模式打开???
 
你应该先连到master数据库,然后再恢复。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1792205
 
先断开连接,并切换到Master
DisConnectDB='use Master;ALTER DATABASE %s SET OFFLINE WITH ROLLBACK IMMEDIATE';
 
也可以把数据库暂时更名一下,恢复成功后删除它,否则再改回来.
 
先检查你的数据库有没有其它的人或者自己无意识的在使用,如果有,先关闭它,再恢复。
再有个傻爪型的办法就是重启那台装有数据库的机器,开机后不用启任何服务,马上恢复就可以了。
 
/*清除除当前进程外的其它进程,以便恢复或备份数据库等排它性操作,
dbid=db_id('press'))中Press是我的数据库,可改为你的数据库名 */
CREATE procedure KillSP
as
declare @KillSPID int
Declare CursorKillSP Cursor For
select SPID from master..sysprocesses where (dbid=db_id('press')) and (spid&lt;&gt;@@SPID)
For Read only

Open CursorKillSP

Fetch CursorKillSP into @KillSPID
while @@fetch_status=0
begin
Execute('kill '+@KillSPID)
Fetch CursorKillSP into @KillSPID
end

Close CursorKillSP
Deallocate CursorKillSP
GO
 
问题已解决
 

Similar threads

S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部