我正在尝试在 Visual Studio 2013/15 中使用 SQL Schema Compare,并且遇到了从删除中排除表会使它们完全无法处理的问题。
问题是它试图删除的表是客户制作的表,所以当我们将我们的版本与他们的数据库同步时,它会要求删除它们。我们不想删除它们,但是它们的一些表对我们的表有限制,因此当它尝试 CCDR 时,由于表限制而失败。有没有办法添加表(重新创建?像其他表一样?),而不需要为每个客户端编写脚本来执行 SQL Schema Compare 已经为那几个表所做的事情?
Red-Gate 的 SQL Compare 以某种方式做到了这一点,但它对我们隐藏,所以不太确定它是如何实现的。排除不会删除,但也不会在脚本上出错。
更新:
选项“删除不在源中的约束”似乎无法正常工作。它确实放弃了一些,但是还有其他一些它只是没有放弃约束。在 red-gate 的工具中,当我们比较时,我发现了如何从中获取 SQL,他们的产品根本没有说表需要更新,而 Visual Studio 的有。它们似乎工作起来几乎相同,但失败的表是根本不应该更新的表(阅读下文)
更新 2:
我发现的另一个问题是“忽略列排序规则”也不能正常工作,因为不应该被删除的表被告知它们需要更新,即使它只是列更改的顺序,而不是实际的列或数据变化,这让人感觉更像是一个错误报告。