gpt4 book ai didi

sql - 包含但不删除SQL Schema比较

转载 作者:行者123 更新时间:2023-12-03 14:24:47 25 4
gpt4 key购买 nike

我正在尝试在Visual Studio 2013/15中使用SQL架构比较,并且遇到了一个问题,即从删除中删除表会完全删除它们。

问题在于它要删除的表是客户制作的表,因此当我们将版本与他们的数据库同步时,它会要求删除它们。我们不想删除它们,但是其中一些表对我们的表有约束,因此当它尝试CCDR时,由于表约束而失败。有没有一种方法可以添加要被创建的表(重新创建?就像它们的其余部分一样?),而无需为每个客户端编写脚本来执行SQL Schema Compare已经针对这几个表所做的工作?

Red-Gate的SQL Compare以某种方式做到了这一点,但它对我们而言是隐藏的,因此不确定如何实现。排除不会删除,但在脚本上也不会出错。

更新:

选项“不在源中放下约束”似乎无法正常工作。它确实删除了一些约束,但是还有其他一些约束并没有删除约束。在redgate的工具中,当我们进行比较时,我发现了如何从中获取SQL,他们的产品根本没有说需要更新表,而Visual Studio却需要。它们的工作原理几乎相同,但是失败的表是根本不应该更新的表(请参阅下文)

更新2:

我发现的另一个问题是“忽略列排序规则”也无法正常工作,因为不应该删除的表被告知它们需要更新,即使这只是列更改的顺序,而不是实际的列或数据更改,这比任何东西都更像是一个错误报告。

Ignore column collation checked

Still showing column collation

最佳答案

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

它是一种很好用的工具,比编写Sql容易,但沿此路径存在巨大的可靠性和一致性风险。

关于sql - 包含但不删除SQL Schema比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com