Sql-Server
ALTER TABLE 語句與 CHECK 約束衝突
我需要檢查
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
至少早於 1 天Datelivr
,但您必須至少有一行不正確 - 要麼Datecom
是同一天,要麼是之後,要麼其中一個值是NULL
。使用以下命令查找這些行:SELECT Numcom, Datecom, Datelivr FROM dbo.Commade WHERE datediff(day,Datecom,Datelivr) <= 0 OR Datecom IS NULL OR Datelivr IS NULL;