【发布时间】:2018-05-12 22:33:36
【问题描述】:
由于某种原因,当使用 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 完全忽略了它们。比较回来显示两者是相同的。
在我的发布配置文件中,我未选中“不检查检查约束时忽略” 我也未选中“忽略外键而不检查外键”。所以他们都应该被评估。
任何人都可以在自己的表格中尝试一下吗?只需将数据库中的 CHECK 更改为 NOCHECK 并在其上运行 SSDT 以查看 SSDT 是否修复了差异。
我已经尝试过,SSDT 一直在绕过差异。
谢谢
【问题讨论】:
标签: sql sql-server sql-server-data-tools dac