如何使用架构比较来比较不同数据库定义
发布网友
发布时间:2022-04-11 01:34
我来回答
共1个回答
热心网友
时间:2022-04-11 03:03
在“SQL”菜单上,选择“架构比较”,然后单击“新建架构比较”。
或者,在解决方案资源管理器中右键单击“TradeDev”项目,然后选择“架构比较”。
“架构比较”窗口随即打开,并且 Visual Studio 会自动为该窗口分配一个名称,如 SqlSchemaCompare1。
紧邻“架构比较”窗口工具栏的下方将显示两个下拉菜单,两个菜单之间有一个绿色箭头。可以使用这两个菜单为比较源和目标选择数据库定义。
在“选择源”下拉菜单中,选择“选择源”,“选择源架构”对话框随即打开。
请注意,如果您通过右键单击项目名称打开“架构比较”窗口,则源架构已经填充,您可前进到步骤 4。
选择“项目”单选按钮,然后选择您在上一个过程中创建的“TradeDev”数据库项目。
从“架构比较”窗口的“选择目标”下拉菜单中,选择“选择目标”,“选择目标架构”对话框随即打开。在“架构”部分,单击“数据库”单选按钮,然后单击“新建连接”按钮。
在“连接属性”对话框中,输入 TradeDev 数据库所在的服务器名称并且确保提供正确的身份验证凭据。然后,在“连接到数据库”中选择“TradeDev”,然后单击“确定”。
你还可以在“架构比较窗口”工具栏中单击“选项”按钮,以指定比较的对象、忽略的差异类型以及其他设置。
在“架构比较”窗口工具栏上单击“比较”按钮以开始比较过程。
在比较完成后,项目和数据库之间的结构差异将显示在该窗口上半部分中的“结果”窗格中。默认情况下,比较结果将按操作(例如,删除、更改或添加)对所有差异进行分组。在“结果”窗格中,在数据库定义上有差异的每个数据库对象显示一行。每一行都标识了源架构和/或目标架构中的对象,以及为使目标对象与源对象相同而将对目标架构执行的操作。如果已重构某个对象并对其重命名或将其移至新架构,则源名称和目标名称会不相同,并且源名称将显示为粗体以突出显示差异。
默认情况下,结果列表会隐藏在两个架构中相同的对象或无法更新的对象(例如,内置对象)。您可以单击工具栏上适当的筛选按钮来显示这些对象。
若要更改分组首选项,请在工具栏上单击“对结果分组”下拉列表。选择“类型”以按对象类型(例如,按表、视图或存储过程)对结果进行分组。
在 Procts 组中查找 Tables 表。单击该行,您会发现,表的源定义和目标定义将显示在“对象定义”窗格中,并将突出显示二者的差异。您也可以在“结果”窗格中展开 Procts 表行以检查表中有差异的特定元素。
默认情况下,所有差异都包含在“更新目标”操作的范围内。您可以排除您不希望同步的差异。为此,请取消选中每行中心的“操作”列。或者,可以在“架构”窗格中右键单击某一行,然后选择“排除”。请注意,该行将立即灰显。在更新目标数据库时,将不认为该行存在任何挂起的更改。
也可以右键单击某个组行并选择“全部排除”或“全部包含”,此操作等效于取消选中或选中该组中的所有差异。在按架构对结果进行分组时,这是包含或排除对特定架构做出的所有更改的有用方式。