【发布时间】:2019-09-04 18:16:11
【问题描述】:
SQL Server 正在向我的 nocheck 约束添加一个检查约束。
我从这个开始:
ALTER TABLE [dbo].[Subjects] WITH NOCHECK ADD CONSTRAINT [FK_Subject_OrganizationSubjectRank] FOREIGN KEY([OrganizationId], [StatusId], [Rank])
REFERENCES [dbo].[OrganizationSubjectRanks] ([OrganizationId], [OrganizationSubjectStatusId], [Name])
GO
每次我执行时,SQL 服务器都会将此添加到我的代码中:
ALTER TABLE [dbo].[Subjects] CHECK CONSTRAINT [FK_Subject_OrganizationSubjectRank]
GO
这会导致外键约束错误。
如何防止 SQL Server 将此检查约束添加到我的代码中?
【问题讨论】:
-
“SQL 服务器将此添加到我的代码中”是什么意思?什么时候出现约束错误?
-
不,它不会导致您的错误。您加载数据和执行这些语句的方式会导致错误。第二条语句只是让引擎检查您的外键关系是否与现有数据一致。
-
@Tab Alleman,我创建了上面的代码,执行后我返回并看到 SQL Server 添加了检查约束(下面的代码)。
-
@SMor,我同意。我们不希望检查,但 SQL Server 一直在添加它。
标签: sql sql-server foreign-keys constraints