***当我还原一个数据库时提示 "当试图还原master数据库时,必须.... ***

xhema1980 2003-12-11 09:12:03
当我还原一个数据库时提示 "当试图还原master数据库时,必须以单用户模式使用Restore Database,Restore DATABASE操作异常终止"
我想现在的主要问题是如何将SQL Server的启动方式改成单用户启动,而不是将一个用户数据库设为单用户,该如何解决?
...全文
184 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhema1980 2003-12-11
  • 打赏
  • 举报
回复
谢谢,有重要的一点我给搞错了,选择还原为数据库时我写得master :)
pengdali 2003-12-11
  • 打赏
  • 举报
回复
右键数据库-->所有任务-->还原数据库-->写入你想要的新的数据库名字-->从设备-->选择设备-->添加-->选择你的文件-->确定-->确定-->选项-->改为现在的data目录的路径-->OK

其中:
"写入名字"-->不要与现在的冲突了,或选强制恢复
"改为现在的data目录的路径"-->如默认是"c:\....data\....mdf"而你现在的sql的data目录是d:\....data你就改为d:\...data\...mdf
pengdali 2003-12-11
  • 打赏
  • 举报
回复
USE master <<==注意
restore database 数据名 from disk='c:\test.bak' with REPLACE
txlicenhe 2003-12-11
  • 打赏
  • 举报
回复
不能打开该数据库,
可用如下方式关闭后再恢复

use master
go
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
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 =0
begin
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end

--用法
use master
exec killspid '数据库名'

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧