繁体   English   中英

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

[英]Include but not Delete SQL Schema Compare

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

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

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

更新:

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

更新2:

我发现的另一个问题是“Ignore column collat​​ion”也无法正常工作,因为不应该被删除的表被告知他们需要更新,即使它只是列更改的顺序,而不是实际的列或数据变化,这使得这更像是一个错误报告而不是任何东西。

忽略列校对

仍然显示列整理

我对这些类型的高级数据计算的建议是不使用Visual Studio。 将逻辑放在Sql引擎上,并在Sql中为此编写代码。 由于Sql引擎的多用户锁定问题,当用户操作的错误组合同时发生时,这些类型的进程很容易失败。 由于Sql引擎可以更改记录,Visual Studio工具无法与数据锁定问题进行交互。 如果您使用它,只有在单用户模式下才能安全运行。

这是一个很好的使用工具,比编写Sql更容易,但是沿着这条路走下去存在巨大的可靠性和一致性风险。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM