在 Visual Studio 和 SQL Server 中按架构名称比较架构
Posted
技术标签:
【中文标题】在 Visual Studio 和 SQL Server 中按架构名称比较架构【英文标题】:Comparing schema by schema name in Visual Studio and SQL Server 【发布时间】:2017-03-10 06:53:47 【问题描述】:我有一个带有默认架构和自定义架构的 SQL Server 数据库。例如,两个表可能是 database.dbo.table1 和 database.customschema.table2。
我想将“customschema”保留在源代码管理下,并且我已将其加载到我的 Visual Studio SQL Server 数据库项目中。
当我使用工具 -> SQL Server -> 新架构比较...实用程序时,它会返回所有数据库架构的差异。
它会将所有“dbo”表在数据库项目中显示为不同/已删除,即使我不打算将它们保留在源代码控制下的项目中。
有没有办法限制结果以显示我的数据库项目与“customschema”对象的实际数据库之间的差异?
【问题讨论】:
【参考方案1】:我会说不。使用 Schema Compare 的 documentation 解释了过滤的选项,它只能排除 types 的对象:
您还可以单击“模式比较窗口”工具栏中的“选项”按钮来指定比较哪些对象、忽略哪些差异类型以及其他设置。
ApexSQL 还在 their page about database comparison 上注明了这一点(强调我的):
Visual Studio Schema Compare 可以在比较之前过滤对象类型(但不是单个对象),而 ApexSQL Diff 通过 Visual Studio 中打开的 Schema compare 查询窗口没有该选项,而它可以在之后编辑项目并执行一些进一步缩小对象和更详细的过滤
我认为,如果您想过滤掉某个架构,您将需要使用不同的工具。我们使用 Redgate 工具(SQL Change Automation、SQL Source Control),它们允许您定义过滤文件以排除某些对象。
【讨论】:
以上是关于在 Visual Studio 和 SQL Server 中按架构名称比较架构的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 和 SQL Server 中按架构名称比较架构
使用 Visual Studio 2012 和 SQL Server Management Studio 2012 运行 SQL Server CE 4 查询
Visual Studio 2019 缺少 SQL Server