项目分成线下开发版、线上測试版、线上生产版,因此相应有三个数据库。
对于一些静态数据。经常须要同步。改动了线下的开发版本号,同一时候也须要更新线上的測试版和线上生产版数据库,有时候线上的一些数据库改动,也要体如今线下来。这是双向的关系,因此不能简单的将一个数据库覆盖另外一个数据库。
如今介绍一种数据合并方法。
环境:SQL Server Management Studio,Window 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 表名 (适合没有自增主键,或者有其它表将之当做外键的表)
然后运行。