このチェック制約の助けが必要な場合、次のエラーメッセージが表示されます。 "メッセージ102、レベル15、状態1、行14 = ''制約とケースステートメントのチェック
それとも私が尋ねるべき質問、これはチェック制約
を使用して可能である場合である私が達成しようとしています:InformationRestrictedがTrueの場合、InformationNotRestrictedが真とInformationRestrictedFromLevel1、InformationRestrictedFromLevel2、InformationRestrictedFromLevel3、InformationRestrictedFromLevel4することはできません、 InformationRestrictedFromLevel5はちょうど列の値を確保しようと、私は列に値を代入しようとしていないのです
trueにすることはできません= 0(すなわち偽)InformationRestrictedがTrueの場合
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とマージできます。 +1とにかく、これはCASEが動作する方法です。 –
ありがとう、これは働いた – temitaio