SQL Server数据库同步工具:SQL Compare

对于使用SQL Server数据库的开发者来说,管理数据库对象(如表、存储过程和视图)的设计和创建是日常工作的一部分。随着应用程序的不断增长和变化,数据库结构(或模式)的增加和更改是开发过程中的常态。

开发者通常使用微软的SQL企业管理器(SQL Enterprise Manager)来创建所需的数据库对象。企业管理器提供了一种强大且快速的方式来创建数据库对象,因为它自动化了工作的详细信息,允许开发者专注于应用程序的功能。然而,它也隐藏了创建新对象所需的SQL命令,这可能会导致开发团队需要在开发、测试、暂存和生产数据库之间迁移结构时出现问题。

少数使用SQL编辑器手动编码每个数据库对象更改的开发者可以使用生成的脚本进行任何未来的数据库迁移——如果(这是一个很大的如果)在这些共享的公共脚本中他们以正确的顺序保存了每次更改。使用这个过程时,即使遗漏了一条语句也可能导致混乱。

相信使用自动化迁移工具来迁移数据库结构是最好的方法。对于SQL Server数据库,Red Gate Software的SQL Compare是领先的此类工具。

SQL Compare的作用

SQL Compare自动化数据库结构迁移;它运行比较,显示差异,并生成脚本,可以从SQL Compare运行,以同步选定的数据库。

下面的截图和解释将为您提供该工具的简要介绍。一些图像已裁剪,以适应此解释。了解它对您的工作效果如何的最好方法是从Red Gate网站下载一个免费的、完全功能的试用版。

首先需要指定您想要比较的两个数据库。SQL Compare可以使用Windows或SQL Server身份验证,如果需要,还可以比较存储在不同位置的数据库。

在这个例子中,将比较两个本地数据库——WidgetStaging和WidgetProduction。要运行比较,请按“比较”。

一旦SQL Compare比较了两个数据库,结果将显示出来。屏幕的上半部分(如图2所示)为您提供了差异的概览。黑色的“=”符号表示没有差异;双头蓝红箭头表示两个数据库中的对象不同,蓝色箭头表示缺少的对象。如果有红色箭头,它将表示额外的对象。

屏幕的下半部分(图3,如下)显示了创建SQL,并指出了数据库中的具体差异。同样,有箭头显示缺少或不同的内容,SQL颜色编码以便于理解。如果您不想查看特定对象属性,点击“-”将折叠它。

如果您点击屏幕顶部的特定数据库对象,在这种情况下是表WidgetPrices,您将能够在屏幕的下半部分查看该单个对象内的具体差异(如下所示)。

在图3中,您可能注意到有两个标签没有向您展示。“同步SQL 1”和“同步SQL 2”标签包含了同步这个单个对象WidgetPrices的代码。在大多数情况下,您不会想要这样做,因为逐个同步对象需要很多工作。一次性同步所有不同的对象会更容易,将在接下来查看。但是,在某些情况下,您可能只想同步单个对象,所以这个选项对您来说是可用的。

现在SQL Compare已经确定了两个选定数据库之间的差异,可以生成同步脚本,使两个数据库相同。

点击“同步”按钮将启动“同步向导”。

首先需要做的是选择想要更改的方向。在这种情况下,希望更改WidgetProduction,使其与WidgetStaging相同。

默认情况下,SQL Compare会查看数据库对象的依赖关系。如果您希望SQL Compare忽略依赖关系,您可以取消勾选向导屏幕左下角的复选框。

一旦您选择了同步的方向,SQL Compare将生成同步脚本。“SQL脚本”标签显示了已生成的脚本。

如果您需要记录数据库的更改,您也可以选择保存脚本以备将来使用。

点击这个向导屏幕的“摘要”标签会告诉您脚本将做什么。

现在SQL Compare已经生成了同步脚本,您需要决定是否希望在SQL Compare内同步数据库,还是从SQL查询分析器内运行同步。

如果您决定同步数据库,如在这里所做的,您可以选择是否希望在同步后重新比较数据库。在这种情况下,将重新运行比较以确保成功。

由于要求SQL Compare在同步后重新比较数据库,SQL Compare自动重新运行比较并显示结果。现在可以确定同步是成功的,因为所有对象在两个数据库中都相同,如“=”符号所示。

管理开发、测试和生产数据库之间的数据库结构迁移过程最好使用SQL Compare。如果您是使用SQL Server数据库的开发者,那么SQL Compare将为您节省大量时间。

如果您需要比较和同步SQL Server数据库中的数据,SQL Compare的配套产品SQL Data Compare也将为您完成这项耗时的任务。

SQL Compare被描述为“任何严肃的软件商店工具箱中的重要部分”,并且因其是SQL Server最节省时间的工具而获奖。关于SQL Compare及其配套产品的许多正面的评论和推荐信已经写成。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485