项目分成线下开发版、线上測试版、线上生产版,因此相应有三个数据库。

对于一些静态数据。经常须要同步。改动了线下的开发版本号,同一时候也须要更新线上的測试版和线上生产版数据库,有时候线上的一些数据库改动,也要体如今线下来。这是双向的关系,因此不能简单的将一个数据库覆盖另外一个数据库。

如今介绍一种数据合并方法。

环境:SQL Server Management StudioWindow 8.1

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

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

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

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

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

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

d) 选择每一个对象单独的文件(也能够全部对象一个文件。可是不便于合并),然后点击高级button。选择导出数据或者模式或者数据和模式。若模式未改变,则仅仅需导出数据就可以。然后点击ok

,再点击下一步。

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

2)打开winmerge。文件-》打开。选择左边和右边的文件,点击okbutton。于是窗体分成两部分,各自是你要对照的两个文件的sql语句。

通过文件对照工具。你能非常方便地知道两个数据库的不同,然后将当中一份改动成你的目标文件。

注意顶层一些图标的功能。可以让你非常方便的merge文件。

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

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

或者

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

然后运行。