SQL Server 2005 数据库备份还原问题


两个数据库表结构相同,为了描述方便,暂时将这两个数据库名称定为A和B。
我将数据库A的数据进行备份,然后肌激冠刻攉灸圭熏氦抹还原到数据库B中,要求是,还原完成以后,数据库B中的数据是原来数据库A加上数据库B的数据量,即还原时,不覆盖现有数据库,请问有没有简单的方法,并给出详细说明,如何备份和恢复,或是其他方法。
问题补充:如果数据库A和B名称相同呢?另外,这两个数据库是在不同网段的局域网内的。

这和SQL Server定义的还原是有区别的。

建议:
将A和B数据库附加到同一个实例,或者也可以链接服务器。
然后写个存储过程,从sys.tables和sys.schemas中所有表名和架构名,生成动态的insert语句
insert into B.架构名.表名 select * from A.架构名.表名
每个表都生成一句这样的insert 语句。然后用execute()执行insert语句。
这样,只要执行这个存储过程,就可以将A数据库中的所有记录追加到B数据库中肌激冠刻攉灸圭熏氦抹对应的表中。
祝你好运!

摆渡浮桥
还肌激冠刻攉灸圭熏氦抹原时使用覆盖选项
例如:
restore database b from disk='备份文件的路径及文件名' with replace
这个需求不能用直接的还原来实现,
直接写吧
insert into databaseB.dbo.table1 select * from databaseA.dbo.table1
备份还原肯定不能实现你要的效果。对于表结构完全相同的多个库,可以使用sqlserver数据库的“订阅/发布”功能,以实现数据传递汇总。


Copyright © 2009-2011 All Rights Reserved.