如何使 Visual Studio 架构比较忽略数据库引用

Posted

技术标签:

【中文标题】如何使 Visual Studio 架构比较忽略数据库引用【英文标题】:How to make Visual studio schema comparison igonore database references 【发布时间】:2012-06-05 12:28:54 【问题描述】:

我们使用的是 Visual Studio 2010,我们的数据库脚本位于数据库项目中。 我们有两个数据库 DB1 和 DB2。 DB1 使用 DB2。 我为每个数据库创建了一个数据库项目,并将 DB2 的 .dbschema 文件作为“数据库参考”添加到 DB1 的项目中。 所以我在 DB1 中的视图代码就像

CREATE VIEW dbo.myView 
AS 
SELECT * FROM [$(DB2Ref)].dbo.SomeTable
GO 

直到这里一切都很好。 但是当我在实际 DB1 数据库和 DB1 数据库项目之间进行模式比较时,比较发现项目中的“myView”和数据库中的“myView”之间存在差异。

有没有办法让架构比较忽略这些引用的数据库变量?

【问题讨论】:

【参考方案1】:

您可以在项目设置中将 SQL CMD 变量的默认值设置为实际的数据库名称。然后,Visual Studio 中的模式比较将知道没有变化。 不幸的是,如果您与具有不同名称的不同数据库进行比较,则每次都需要将此默认值更改为您要比较的数据库。

Setting SQL Cmd variable Default

SQL Schema Compare of View - 顶部没有定义默认值,因此对象被标记为更改,底部定义了变量,因此标记为无操作

抱歉,没有足够的代表来添加图片或超过 3 个链接

【讨论】:

以上是关于如何使 Visual Studio 架构比较忽略数据库引用的主要内容,如果未能解决你的问题,请参考以下文章

如何使Visual Studio在项目中包括所有排除的文件

Visual Studio 架构比较找不到生成的脚本

Visual Studio 2010 架构比较 - 更新脚本生成

在 Visual Studio 和 SQL Server 中按架构名称比较架构

Visual Studio2017 数据库架构比较

如何忽略 '$' 未定义 JsHint 错误。 (Visual Studio 2010 JsHint 扩展)