是否可以比较具有相同结构的两个数据库?假设我有两个数据库DB1和DB2,我想检查它们之间的数据是否存在差异.
我想比较SQL Server 2012和SQL Azure之间的模式,但我在Visual Studio 2013中遇到此错误:
将SQL Server 2012指定为目标平台的项目无法发布到SQL Azure.

是否可以比较这两种数据库类型?
sql-server visual-studio schema-compare visual-studio-2013 azure-sql-database
到目前为止,我能够使用Visual Studio 2012中的Schema Compare功能从数据库项目更新数据库.但是现在,对于一个项目,我可以进行比较,但更新按钮是灰色的.
我能够使用其他项目来更新其他数据库,但是从这个项目我无法更新任何数据库.我没有收到任何错误,功能只是不可用.
使用发布仍然有效.同样从数据库更新项目也起作用,而不是相反.
有谁知道为什么我无法通过Schema Compare更新数据库?
VS 2010有一种方法可以保存Schema Compare选项,以便它们可以应用于所有模式比较.
VS 2012似乎只保留了单一比较的选项; 一旦我关闭窗口,我的所有选项都会恢复为默认值.
如何在VS 2012中持久保存SQL Schema Compare选项?
ps我最终用我的设置保存了一个Schema Comparison(.scmp),现在我只打开该文件而不是创建一个"New Schema Comparison".令人遗憾的是,VS2010的功能没有达到VS2012.
我试图在Visual Studio 2013/15中使用SQL模式比较,并且遇到了从删除表中删除表的问题,使它们完全无法处理.
问题是它试图删除的表是客户制造的表,所以当我们将我们的版本与他们的数据库同步时,它要求删除它们.我们不想删除它们,但是它们的一些表对我们的表有约束,因此当它尝试CCDR时由于表约束而失败.有没有办法添加表(重新创建?像其他人一样?),而不是为每个客户端编写脚本来执行SQL Schema Compare已经为这几个表做的事情?
Red-Gate的SQL Compare以某种方式做到这一点,但它对我们隐藏,所以不太确定它是如何实现的.删除不删除,但脚本上也没有错误.
更新:
"删除不在源中的约束"选项似乎无法正常工作.它确实会丢掉一些,但是还有一些它不会放弃约束.在red-gate的工具中,当我们比较时,我发现了如何从中获取SQL,而他们的产品并没有说表需要根据需要进行更新,而Visual Studio则可以.它们似乎工作几乎相同,但失败的表是根本不应更新的表(见下文)
更新2:
我发现的另一个问题是"忽略列排序规则"也不能正常工作,因为这不应该被越来越下降被告知,他们需要的,即使它只是一个列变化,而不是实际的列或数据才能被更新的表变化,这使得这更像是一个错误报告而不是任何东西.
在Visual Studio 2013中,有没有办法在进行架构比较时忽略列排序?我看到这个功能已从Visual Studio 2012中删除(根据这个:https://stackoverflow.com/a/13848952/188740),但我希望它在2013版本中被带回.
这是一个快速的视觉来说明我想忽略的内容:

我想从数据库和我的数据库项目创建一个delta脚本.数据库作为源和数据库项目作为目标.该Update按钮工作正常,没有任何错误,我的错误列表只包含此警告:
源的登录名没有VIEW ANY DEFINITION权限.如果目标是数据库,则比较将限于数据库范围的元素.
此权限:https://technet.microsoft.com/en-us/library/ms175808(v = sql.105).aspx
如何generate Script在Visual Studio Enterprise 2017中激活Button?我真的需要访问脚本生成的元数据吗?
(编辑):
即使有这个权限也无效.但是我可以在比较两个数据库时生成脚本.
我在 Visual Studio 2013 的解决方案中创建了一个数据库项目,并从 SQL 服务器导入了一个数据库。然后我做了一个 SQL 比较;源是数据库,目标是数据库项目。比较结果显示我的一张表发生了变化。我看到的唯一变化是格式不同,所以我告诉它更新目的地。它做了更新,我运行了一个新的比较,它告诉我同一个表有相同的差异。以下是一些差异示例:
我如何达到比较结果显示“一切都相同;没有差异”的程度?我本地数据库项目中的表没有修改;有谁知道为什么 Visual Studio 以不同的格式保存它,我能做些什么?选中“忽略空格”复选框。
我在 Visual Studio 2017 中有一个 SQL 项目,我正在使用 SSDT 从 SQL 数据库更新我的项目,如下所示:
通常,我用作源的数据库正在发生变化(通常以小且不相关的方式),当发生这种情况时,我无法更新我的项目,我得到“通常”“经验丰富”:
检测到源架构漂移。按比较刷新。
然而,就我而言,这个错误是合法的,我只是不在乎,无论如何我想更新我的目标。有没有办法忽略此消息并让 Visual Studio 更新我的项目,而不管架构漂移如何?
visual-studio schema-compare sql-server-data-tools visual-studio-2017
尝试在 Visual Studio 中的 SQL 架构比较中更新数据库时,出现以下错误。
(48,1): SQL72014: .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 检测到行。架构更新正在终止,因为可能会发生数据丢失。执行批处理时发生错误。
我了解该工具已检查更新后的数据丢失情况。
我在想会有一些选项可以让我忽略这一点。
谷歌搜索后,我得到了以下链接,但在 Visual Studio 2012 中, https://social.msdn.microsoft.com/Forums/en-US/ce95ac1d-a31c-4e83-904e-78a8491d0761/shema-compare-force-update- with-data-loss?forum=vstsdb
但是我在我的 Schema 选项中没有找到任何这样的选项