CREATE TABLE temp061_t (
ID INT IDENTITY(1,1) PRIMARY KEY,
RoleType INT NOT NULL,
isSior INT NULL
);
ALTER TABLE temp061_t
ADD CONSTRAINT chk_is_sior CHECK (
(RoleType = 1 AND isSior IS NULL) OR
(RoleType = 2 AND isSior IN (0,1,2))
);
-- 合法插入
INSERT INTO temp061_t (RoleType, isSior) VALUES (1, NULL); -- ✅
INSERT INTO temp061_t (RoleType, isSior) VALUES (2, 0); -- ✅
INSERT INTO temp061_t (RoleType, isSior) VALUES (2, 1); -- ✅
-- 非法插入(会违反约束)
INSERT INTO temp061_t (RoleType, isSior) VALUES (1, 0); -- ❌
INSERT INTO temp061_t (RoleType, isSior) VALUES (2, 3); -- ❌