mssql创建字段依赖

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); -- ❌

posted @ 2025-09-19 08:38  自在现实  阅读(6)  评论(0)    收藏  举报