restore database 出现"数据库正在使用"时,如何用命令关闭数据库?

yuhuahuang 2003-06-09 02:58:07
执行 restore database erp_data from disk='F:\麦氏五金\ms
出现:
服务器: 消息 3101,级别 16,状态 2,行 1
因为数据库正在使用,所以未能获得对数据库的排它访问权。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。

----------
问题:如何用命令关闭数据库
...全文
1197 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydreamer 2003-06-10
  • 打赏
  • 举报
回复
kill掉正在使用那个db的进程
然后在恢复
hbwhwanghua 2003-06-09
  • 打赏
  • 举报
回复
不可能的,别人在用数据库,你怎么restore呢,

或者杀了他,或者干脆数据库重启!
yuhuahuang 2003-06-09
  • 打赏
  • 举报
回复
多谢各位!
pengdali 2003-06-09
  • 打赏
  • 举报
回复
USE master
restore database erp_data from disk='F:\麦氏五金\ms
pengdali 2003-06-09
  • 打赏
  • 举报
回复
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500)
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 < >-1
begin
exec('kill '+rtrim(@spid))
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end

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


你再:
restore database erp_data from disk='F:\麦氏五金\ms
go
zjcxc 2003-06-09
  • 打赏
  • 举报
回复
如果用户不退出,是不行的?
怎么保证数据的完整性?
你可以暂停服务,恢复数据库后再恢复服务
caiyunxia 2003-06-09
  • 打赏
  • 举报
回复
如果用户不退出,不行!
用户在使用,你恢复,数据完整吗?
hjb111 2003-06-09
  • 打赏
  • 举报
回复
如果用户不退出,可能不行!
pbsql 2003-06-09
  • 打赏
  • 举报
回复
可以考虑停掉服务再启动服务
yuhuahuang 2003-06-09
  • 打赏
  • 举报
回复
多谢你们答我的问题!!

但还是不行!
因前台是有人正在使用数据库的,我是想不用别人退出,也可以restore!
请问还有别的方法吗?
thanks!
pbsql 2003-06-09
  • 打赏
  • 举报
回复
很可能你自己在使用,注意执行restore database 时不要联到你要恢复的数据库,联到master
use master
restore database erp_data from disk='F:\麦氏五金\ms'
愉快的登山者 2003-06-09
  • 打赏
  • 举报
回复
进入单用户:
USE master
EXEC sp_dboption 'erp_data', 'single user', 'TRUE'
go
restore database erp_data from disk='F:\麦氏五金\ms
go

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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