SQL - 不检查现有行就无法添加检查约束
SQL - Cannot add check constraint without checking the existing rows
我需要修改现有约束。我在多个主题上读到这是不可能的,我们需要删除并重新创建它。所以我删除了它并重写了它。尝试将其保存在 SQL Server Management studio 中时,我收到此错误消息:
Unable to add constraint chk_AnneeNaissance. The ALTER TABLE statement conflicted with the CHECK CONSTRAINT chk_AnneeNaissance.
我知道我的数据库中有一些行不满足此约束,但我想在下一次插入时添加它。
我环顾四周,发现我需要自己用 NOCHECK 执行命令,所以我正在尝试这个命令:
ALTER TABLE [GENERAL].[dbo].[Base] WITH NOCHECK ADD CONSTRAINT chk_AnneeNaissance
但是我有这个错误:
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near 'chk_AnneeNaissance'.
谁能帮我写出正确的命令?
ALTER TABLE [ERI_COPY_20170315].[dbo].[Base] WITH NOCHECK
ADD CONSTRAINT chk_AnneeNaissance
CHECK (
[Année de naissance] IS NOT NULL AND
[Année de naissance]>=([Date de valeur]-(80)) AND
[Année de naissance]<=([Date de valeur]-(15)) AND
len([Année de naissance])=(4)
)
效果很好。谢谢詹姆斯 Z!我不知道我应该把我的约束代码放在哪里。
我需要修改现有约束。我在多个主题上读到这是不可能的,我们需要删除并重新创建它。所以我删除了它并重写了它。尝试将其保存在 SQL Server Management studio 中时,我收到此错误消息:
Unable to add constraint chk_AnneeNaissance. The ALTER TABLE statement conflicted with the CHECK CONSTRAINT chk_AnneeNaissance.
我知道我的数据库中有一些行不满足此约束,但我想在下一次插入时添加它。 我环顾四周,发现我需要自己用 NOCHECK 执行命令,所以我正在尝试这个命令:
ALTER TABLE [GENERAL].[dbo].[Base] WITH NOCHECK ADD CONSTRAINT chk_AnneeNaissance
但是我有这个错误:
Msg 102, Level 15, State 1, Line 3 Incorrect syntax near 'chk_AnneeNaissance'.
谁能帮我写出正确的命令?
ALTER TABLE [ERI_COPY_20170315].[dbo].[Base] WITH NOCHECK
ADD CONSTRAINT chk_AnneeNaissance
CHECK (
[Année de naissance] IS NOT NULL AND
[Année de naissance]>=([Date de valeur]-(80)) AND
[Année de naissance]<=([Date de valeur]-(15)) AND
len([Année de naissance])=(4)
)
效果很好。谢谢詹姆斯 Z!我不知道我应该把我的约束代码放在哪里。