gpt4 book ai didi

sql - SSDT 在比较和发布中跳过 NOCHECK 约束

转载 作者:行者123 更新时间:2023-12-05 07:34:06 27 4
gpt4 key购买 nike

出于某种原因,当使用 SSDT 比较或修改表外键时,软件不会执行任何更改外键上设置的 NOCHECK 约束的操作。

这是表外键的脚本设置:

表:

ALTER TABLE [dbo].[SurveyQuestion]  WITH NOCHECK ADD  CONSTRAINT [FK_SurveyQuestion_Language] FOREIGN KEY([LanguageID])
REFERENCES [dbo].[Language] ([ID])
GO

ALTER TABLE [dbo].[SurveyQuestion] CHECK CONSTRAINT [FK_SurveyQuestion_Language]

数据库模式:

CONSTRAINT [FK_SurveyQuestion_Language] FOREIGN KEY ([LanguageID]) REFERENCES [dbo].[Language] ([ID])

所以,这些是不同的设置,但 SSDT 只是完全忽略它们。比较结果显示两者相同。

在我的发布配置文件中,我没有选中“ignore with nocheck on check constraints”我也没有选中“忽略外键不检查”。所以他们都应该被评估。

任何人都可以在自己的表格中尝试一下吗?只需将数据库中的 CHECK 更改为 NOCHECK 并在其上运行 SSDT 以查看 SSDT 是否修复了差异。

我试了又试,SSDT 一直绕过差异。

谢谢

最佳答案

这两个设置之间的唯一区别是表中的现有数据是否被检查。在这两种情况下,约束都存在并且启用了检查——所以模式是相同的——尽管数据的一致性可能不同,因为在第一个示例中,预先存在的数据可能违反了约束。

关于sql - SSDT 在比较和发布中跳过 NOCHECK 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50311202/

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