我有一個包含兩個鏈接列的表,一個強制布爾值和一個可選日期。布爾值爲FALSE時只能有一個日期。所以我有這樣的結構:更新時的約束違規
CREATE TABLE FOO (
FOO_ID INT IDENTITY(1, 1) NOT NULL,
MY_DATE DATETIME,
MY_BOOLEAN BIT DEFAULT 0 NOT NULL,
CONSTRAINT FOO_PK PRIMARY KEY (FOO_ID)
);
而且我已經寫了這個限制,以保持數據的完整性:
ALTER TABLE FOO
ADD CONSTRAINT FOO_CHK CHECK (
MY_BOOLEAN=0 OR MY_DATE IS NULL
);
我必須失去了一些東西很明顯,但事實是,我無法運行此更新查詢:
UPDATE FOO
SET
MY_BOOLEAN=1,
MY_DATE=NULL
WHERE FOO_ID=31416
我得到一個檢查約束衝突錯誤,更新失敗。我究竟做錯了什麼?
UPDATE
很遺憾地告訴我已經輸錯列名...對不起,浪費你的時間。我希望我能刪除的問題:_(
錯誤應該告訴**哪個**約束失敗,是否說'FOO_CHK'是原因? –
InstrucciónUPDATE en contrto con lalaracciónCHECK「FOO_CHK」。El conflicto ha_aparecido en la base de datos「MY_DATABASE」,tabla「dbo.FOO」。 –