我需要此檢查約束的幫助,我收到以下錯誤消息:「Msg 102,Level 15,State 1,Line 14 '='附近的語法不正確。檢查約束和個案陳述
或者這個問題我要問的是,如果這是可能的使用檢查約束
我想實現的是:如果InformationRestricted爲True,InformationNotRestricted不可能是真實的和InformationRestrictedFromLevel1,InformationRestrictedFromLevel2,InformationRestrictedFromLevel3,InformationRestrictedFromLevel4, InformationRestrictedFromLevel5不可能是真的
我不是要分配值列,只是想確保列的值= 0(即假)如果InformationRestricted是真
這裏是腳本:
CREATE TABLE EmployeeData
(FirstName varchar(50),
Last Name varchar(50),
Age int,
Address varchar(100),
InformationRestricted bit,
InformationNotRestricted bit,
InformationRestrictedFromLevel1 bit,
InformationRestrictedFromLevel2 bit
InformationRestrictedFromLevel3 bit
InformationRestrictedFromLevel4 bit
InformationRestrictedFromLevel5 bit);
ALTER TABLE EmployeeData ADD CONSTRAINT ck_EmployeeData
CHECK (CASE WHEN InformationRestricted = 1 THEN InformationNotRestricted = 0 --InformationRestricted is true, InformationNotRestricted is false
AND(InformationRestrictedFromLevel1 = 0 --is false
OR InformationRestrictedFromLevel2 = 0 --is false
OR InformationRestrictedFromLevel3 = 0 --is false
OR InformationRestrictedFromLevel4 = 0 --is false
OR InformationRestrictedFromLevel5 = 0)); --is false
內部CASE可能可以與外部合併。無論如何,這是CASE的工作原理。 –
非常感謝,這工作 – temitaio