2017-03-24 44 views
-1

我需要修改现有约束。我阅读了多个主题,认为这是不可能的,我们需要删除并重新创建它。所以我删除它并重写它。当试图将其保存在SQL Server Management Studio中时,我收到以下错误消息:SQL - 无法检查现有行,无法添加检查约束

无法添加约束chk_AnneeNaissance。 ALTER TABLE语句与CHECK CONSTRAINT chk_AnneeNaissance冲突。

我知道我的数据库中有一些行没有满足这个约束,但是我想为下一个插入添加它。 我环顾四周,我发现,我需要做的命令自己与NOCHECK所以我想这个命令:

ALTER TABLE [GENERAL].[dbo].[Base] WITH NOCHECK ADD CONSTRAINT chk_AnneeNaissance 

但我有此错误:

消息102, Level 15,State 1,Line 3 'chk_AnneeNaissance'附近的语法不正确。

有人能帮我写正确的命令吗?

+0

MySQL和sql server是两种不同的产品。请仅用相关标签标记您的问题。 – Shadow

+0

请尝试更改约束名称chk_AnneeNaissance并查看是否有效,如果是,那么您正确地包含chk_AnneeNaissance – SKLTFZ

+0

哪个CONSTRAINT是您试图添加的? –

回答

1
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!我不知道我应该把我的约束代码放在哪里。