2017-03-24 5 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、レベル15、状態1、行3 'chk_AnneeNaissance'の近くの構文が正しくありません。

誰かが正しいコマンドを書いてくれますか?

+0

MySQLとSQLサーバは、2つの異なる製品です。 Plsはあなたの質問に関連するタグだけを付けます。 – 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) 
) 

これは完全に機能します。ありがとうJames Z!制約コードをどこに置くべきかわかりませんでした。

関連する問題