通过文件对比工具Merge数据库

项目分成线下开发版、线上测试版、线上生产版,因此对应有三个数据库。对于一些静态数据,常常需要同步。修改了线下的开发版本,同时也需要更新线上的测试版和线上生产版数据库,有时候线上的一些数据库修改,也要体现在线下来。这是双向的关系,因此不能简单的将一个数据库覆盖另外一个数据库。现在介绍一种数据合并方法。

环境:SQL Server Management StudioWindow 8.1

软件:winmerge http://winmerge.org/downloads/,文件对比工具

适合范围:静态数据表,且数据量不大

1)导出要合并的两个数据库。导出方法如下:

a) 右键你要合并的数据库-》任务-》产生脚本

b) 弹出介绍窗口,直接点击下一步

c) 选择特定数据库对象,点击下一步

d) 选择每个对象单独的文件(也可以所有对象一个文件,但是不便于合并),然后点击高级按钮,选择导出数据或者模式或者数据和模式。若模式未改变,则只需导出数据即可。然后点击ok

,再点击下一步。

e) 弹出summary框,点击下一步,finish

2)打开winmerge,文件-》打开,选择左边和右边的文件,点击ok按钮。于是窗口分成两部分,分别是你要对比的两个文件的sql语句。通过文件对比工具,你能很方便地知道两个数据库的不同,然后将其中一份修改成你的目标文件。注意顶层一些图标的功能,能够让你很方便的merge文件。

3)获得了一份你的目标脚本,然后将脚本拷贝到sql server management studio中,这里一定要慎重,选择你要的数据库,即将前面的“USE 数据库名”改成你的数据库名。然后加上一句:

truncate table 表名 (适合有自增主键,且没有将之当做外键的表)

或者

Delete from 表名 (适合没有自增主键,或者有其他表将之当做外键的表)

然后执行。

0 条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用 * 标注