datecom
がdatelivr
より小さいことを確認する必要があります
create table Commande
(
Numcom int identity primary key,
Datecom date,
Datelivr date,
Codecli int foreign key references clients (Codecli)
)
alter table Commande
add constraint date_check check(datediff(day,Datecom,Datelivr) > 0)
しかし、私はエラーメッセージを受け取ります:
ALTER TABLEステートメントがCHECK制約「date_check」と競合しました。データベース "tp4"、テーブル "dbo.Commande"で競合が発生しました。
これはどうして起こりますか?
エラーメッセージは自明です:チェック制約はDatecom
のすべての値がDatelivr
より少なくとも1日早いことを強制しようとしていますが、これが存在する行が少なくとも1つ必要です真ではない-Datecom
が同じ日、または後で、または値の1つがNULL
である。以下を使用してこれらの行を検索します。
SELECT Numcom, Datecom, Datelivr
FROM dbo.Commade
WHERE datediff(day,Datecom,Datelivr) <= 0
OR Datecom IS NULL
OR Datelivr IS NULL;