包括但不能删除SQL架构比较

Dis*_*sia 17 sql visual-studio schema-compare

我试图在Visual Studio 2013/15中使用SQL模式比较,并且遇到了从删除表中删除表的问题,使它们完全无法处理.

问题是它试图删除的表是客户制造的表,所以当我们将我们的版本与他们的数据库同步时,它要求删除它们.我们不想删除它们,但是它们的一些表对我们的表有约束,因此当它尝试CCDR时由于表约束而失败.有没有办法添加表(重新创建?像其他人一样?),而不是为每个客户端编写脚本来执行SQL Schema Compare已经为这几个表做的事情?

Red-Gate的SQL Compare以某种方式做到这一点,但它对我们隐藏,所以不太确定它是如何实现的.删除不删除,但脚本上也没有错误.

更新:

"删除不在源中的约束"选项似乎无法正常工作.它确实会丢掉一些,但是还有一些它不会放弃约束.在red-gate的工具中,当我们比较时,我发现了如何从中获取SQL,而他们的产品并没有说表需要根据需要进行更新,而Visual Studio则可以.它们似乎工作几乎相同,但失败的表是根本不应更新的表(见下文)

更新2:

我发现的另一个问题是"忽略列排序规则"也不能正常工作,因为这不应该被越来越下降被告知,他们需要的,即使它只是一个列变化,而不是实际的列或数据才能被更新的表变化,这使得这更像是一个错误报告而不是任何东西.

忽略列校对

仍然显示列整理

Pro*_*lay 0

我不知道这是否有帮助,但我在以下页面上找到了这段: https://msdn.microsoft.com/en-us/library/hh272690 (v=vs.103).aspx

更新将失败,因为我们的更改涉及将列从 NOT NULL 更改为 NULL,从而导致数据丢失。如果要继续更新,请单击架构比较工具栏上的“选项”按钮(左起第五个),然后取消选中“如果数据丢失则阻止增量部署”选项。