问题标签 [schema-compare]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3122 浏览

sql-server-data-tools - 在 SSDT 比较中排除架构级权限

TL;DR:在 Visual Studio 2013 中进行架构比较时,是否可以排除对架构授予的权限?


我有一个仅存在于生产服务器上的用户帐户,以及一个仅存在于非生产服务器上的相同用户。这些用户被授予在数据库模式级别执行。

我在 Visual Studio 2013 中运行架构比较(使用 SSDT 版本 12.0.50927.0),当出现差异时,我排除了所有差异:

VS2013 架构比较

但是生成的更改脚本总是希望对这些用户强制授予/撤销:

经过一番研究,我发现在以前的版本中,可以将这些语句从更新脚本中排除。在 Visual Studio 2010 中运行相同的架构比较(使用 SSDT 版本 10.3.31009.2)时,我会看到排除架构差异的选项:

VS2010架构对比

当我排除架构差异时,生成的脚本不包括 REVOKE/GRANT 语句。保存模式比较并打开 scmp 文件显示已生成以下 XML:

我可以拿这个 scmp 文件并在 VS2013 中毫无问题地打开它,但结果是一样的:排除在架构上授予的权限的选项不可用。真正奇怪的是,如果我使用 VS2013 保存 scmp 文件,“版本”列出的值从 10.3.0.0 更改为 12.0.0.0。好像 SSDT 声称支持此功能,但似乎不支持。还是我错过了什么?

0 投票
0 回答
79 浏览

visual-studio-2013 - Visual Studio 2013 ASCII 字符中的架构比较工具

我正在将我的项目与我们的开发数据库 SQL Server 进行比较,并在架构比较工具中发现了一个错误。我发现任何超过 127 的 ASCII 字符都会显示为黑色菱形问号,这意味着该字符无法识别。在此示例中,部分符号 § 显示为 �。窗格左侧是我的数据库项目中包含的函数,窗格右侧是开发数据库服务器上的函数。

数据库项目和数据库服务器之间的架构比较

0 投票
1 回答
1660 浏览

visual-studio-2015 - VS2015 数据库项目:关闭模式检查

我正在尝试在 VS2015 中创建一个数据库项目并开始构建它。但我有 SQL71501 之类的错误:用户:[UserX] 对登录 [UserX] 有未解析的引用 选项是 1. 关闭任何模式检查 2. 将主数据库添加为数据库项目并将其添加为数据库引用。

我无法做到(1),因为我在工具-> 选项-> 数据库工具中找不到与架构比较相关的任何选项我可以将主数据库添加为项目,但 VS 不允许我导入引用的登录名(不适用于主)。顺便说一句,我正在尝试导入 Sql Server 2014 数据库。

0 投票
1 回答
4941 浏览

visual-studio-2012 - 如何从 VS DB 项目中引用另一个 DB?

我们有几个数据库,比如 DB1、DB2、DB3 等。

它们必须具有相同的代码库,因此我们在 Visual Studio 2012 中使用 DB 项目,并根据项目与 UAT/Prod DB1 之间的比较生成用于部署的 SQL 脚本。然后将此脚本应用于 DB1-DBn。

在这个数据库项目的历史上,我第一次不得不创建一个包含硬编码数据库名称的函数,例如:

现在,由于与该数据库引用有关的许多错误,无法构建项目或无法更新比较或生成脚本(禁用更新和生成脚本按钮),因为 VS 似乎认为 DB1 不存在。

我尝试添加一个项目级 SQLCMD 变量$(DB)并将其设置为DB1默认值并将其用作

解决这些错误,但似乎没有任何区别。

编辑:

有人建议向自身添加一个循环项目引用,并将我试图手动添加的相同变量分配给它,但不确定如何实现。

0 投票
0 回答
545 浏览

sql-server-2012 - Visual Studio 2015 在架构比较上崩溃

每次我尝试在 Visual Studio 2015 中对我的本地数据库进行架构比较时,Visual Studio 都会崩溃并自行重启。

我已经尝试重新启动我的 PC 并删除并重新创建数据库(通过恢复它)。

我在安装了 SQL Server 2012 的 Windows 7 Ultimate x64 机器上运行 Visual Studio 2015 Enterprise。

0 投票
1 回答
1018 浏览

visual-studio-2015 - 在 Visual Studio 2015 中删除数据库连接字符串

我正在使用模式比较,但每当我切换数据库时,我都会看到旧模式列表以及我想要使用的模式。

如何删除旧的?

我目前的解决方案是更新旧模式以镜像我想要保留的模式,然后它就会消失。

0 投票
1 回答
975 浏览

c# - 如何获得与 VS Schema 比较工具等效的 C# 代码?

我有多个 SQL Server 数据库,我想将它们与一个黄金标准数据库进行比较,并生成一份报告/列表,其中包含两者在架构方面的所有差异。这将按计划自动完成。

我需要能够有问题地使用C#来执行此操作(这意味着我不能使用 SSDT 提供的 GUI 工具)。我也不能使用任何第三方工具,例如 Red-Gate。

我无法找到有关如何执行此操作的任何资源。谢谢。

0 投票
1 回答
717 浏览

sql-server - How to setup schema compare file so that it always ignores a specific db schema?

I have two SSDT projects targeting the same database. When I use Schema Compare feature from any of the projects, it detects the other project's objects as being non-existent and sets them for deletion.

I cannot merge the two projects into one as I make use of the DAC API and there's a point where I need one compiled before the other. The "dependent" project's objects are all in the same db schema (let's call it myschema), which is unknown from the "core" project.

Is there any way I can setup the SCMP file so that when comparing the "core" project it ignores everything that's placed inside myschema?

0 投票
1 回答
250 浏览

sql-server - SSDT - 架构比较丢弃旧存储过程,发布不

我在 Visual Studio 2015 中使用数据库项目。我注意到,如果我从项目中删除存储过程,然后生成发布脚本,则脚本中没有任何内容会转储旧存储过程。但是,如果我删除一个存储过程并使用模式比较/更新,存储过程将被转储。

谁能帮我理解这种行为?我想生成一个发布脚本来查看在发布之前将要进行的更改,所以我喜欢生成一个脚本。但是,我不想在每次推出更改时都进行模式比较/更新和发布。

谢谢你。

0 投票
1 回答
1457 浏览

c# - 是否有任何通过 C# 进行数据库模式比较的工具

我需要建立一个比较两个数据库的工作,如果有一些变化,它应该报告它。

我发现 1) Red Gate API 工具 - 太贵了 2) https://github.com/schambers/fluentmigrator - 不完全是我需要的 3) http://blog.apexsql.com/apexsql-diff-api-discontinued / - 停产

那么只有一种方法是手动构建一些用于比较 sql 对象的代码?请指教