关于数据库备份还原的问题,急!!!

时间:2021-10-31 19:57:00
用backup database base to disk='base'备份的数据库,然后删除了一部分记录,
系统运行一段时间以后,新记录存入数据库,现在又要把原来备份的数据库还原,并且要保留上次备份之后新存入的记录,要如何操作??

我的做法是:
将原来备份的数据库还原到另外一台机器上,然后用dts对每个表进行追加还原,但是总报主键冲突错误,dts导入表时,能不能跳过主键冲突的记录??

5 个解决方案

#1


你首先把原来的备份数据库恢复,名字不要和现在的数据库一样了。
back   ------恢复的数据库名
power -------现在的数据库名
dbo----------表的所有者
id  ---------表的主键
insert into back.dbo.tb(id,col1,col2...)
select id,col1,col2...  from power.dbo.tb A
where not exists(select * from back.dbo.tb where id=A.id)
执行完后,再把back数据库备份,把power数据库删除(在删除之前先备份,以免出错)
再把刚备份好的数据库还原为power


#2


不用还原,用数据导入!应该可以

#3


hsj20041004(光芒) 
表里面的列有二进制的字段,存图片,也能用这种方法吗?

#4


直接用DTS倒数据,只不过DTS工具里面的选项,要好好选,所有的都取消,仅仅选中“数据的添加”,应该就是倒入原来并不存在的数据,也就是你上次备份后,新insert的那部分数据。

#5


加条件,用DTS导入不存在的数据到旧的备份中.

这个要用手工控制,无法系统自动完成.

#1


你首先把原来的备份数据库恢复,名字不要和现在的数据库一样了。
back   ------恢复的数据库名
power -------现在的数据库名
dbo----------表的所有者
id  ---------表的主键
insert into back.dbo.tb(id,col1,col2...)
select id,col1,col2...  from power.dbo.tb A
where not exists(select * from back.dbo.tb where id=A.id)
执行完后,再把back数据库备份,把power数据库删除(在删除之前先备份,以免出错)
再把刚备份好的数据库还原为power


#2


不用还原,用数据导入!应该可以

#3


hsj20041004(光芒) 
表里面的列有二进制的字段,存图片,也能用这种方法吗?

#4


直接用DTS倒数据,只不过DTS工具里面的选项,要好好选,所有的都取消,仅仅选中“数据的添加”,应该就是倒入原来并不存在的数据,也就是你上次备份后,新insert的那部分数据。

#5


加条件,用DTS导入不存在的数据到旧的备份中.

这个要用手工控制,无法系统自动完成.