以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  用现有数据库复制为另一个数据库的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=55976)

--  作者:zpx_2012
--  发布时间:2014/8/27 11:10:00
--  用现有数据库复制为另一个数据库的问题

想用一个现有的数据库复制新增为另一个数据库,除了分离-复制重命名为新数据库再附加的方法,想用现有数据库的备份来还原却不可以,

 

先在sql2005中新增一个空数据库:abc_Test,然后用现有的数据库abc的一个备份文件还原,却总提示错误

RESTORE DATABASE abc_Test
FROM DISK=\'F:\\NS\\backup\\abc_20140627.bak\' WITH REPLACE

 

错误提示如下:

无法覆盖文件 \'D:\\Program Files\\SQLDATA\\abc.MDF\'。数据库 \'abc\' 正在使用该文件。

文件 \'abc\' 无法还原为 \'D:\\Program Files\\SQLDATA\\abc.MDF\'。请使用 WITH MOVE 选项来标识该文件的有效位置。

 

本来是用abc_20140627.bak还原为 abc_Test,但错误提示却是无法还原为abc.MDF, 不理解请教老师。

 

谢谢!



--  作者:jspta
--  发布时间:2014/8/27 11:13:00
--  
D:\\Program Files\\SQLDATA\\abc.MDF  这个路径应该是原来数据库文件吧
你要路径改了下才行

--  作者:有点甜
--  发布时间:2014/8/27 11:18:00
--  

 如果要还原某一数据库。

 

 1、所有对数据库的连接,都必须关闭;

 

 2、你执行还原语句的时候,不能连接当前数据库;


--  作者:zpx_2012
--  发布时间:2014/8/27 11:23:00
--  

那个路径是原来的没有错,但是我新增的abc_Test也是在D:\\Program Files\\SQLDATA\\下面,原来那个数据库abc.MDF也还要用,而且这个

RESTORE DATABASE abc_Test
FROM DISK=\'F:\\NS\\backup\\abc_20140627.bak\' WITH REPLACE

这两句中没有涉及到路径,要怎么改呢?

 

 

 


--  作者:有点甜
--  发布时间:2014/8/27 11:29:00
--  

 回复4楼,没有你这种复制数据库的方法。

 

 一般复制数据库,都是这样:1、将数据库生成sql语句;2、执行生成的sql语句,还原或新建数据库。