【发布时间】:2020-08-27 09:56:43
【问题描述】:
我正在尝试在 CHECK 约束中设置条件。场景是
- 当 column1 为空时,不需要任何操作
- 如果 column1 不为 null,则 column3 必须已定义代码
例如,如果学生查询了 (1),那么他应该执行了一个操作(作为代码 1 访问或作为代码 2 调用)
CREATE TABLE [dbo].[enquiry_details](
[Id] uniqueidentifier NOT NULL,
[Name] [varchar] (100) NOT NULL,
[Enquired] [int] NULL,
[location] [int] NOT NULL,
[Action_Type] [int] NULL,
-- CONSTRAINT menu_key CHECK ((Enquired IS NOT NULL)and Action_Type IN ('11','22'))
--CONSTRAINT menu_key CHECK (IF(Enquired!= null) Action_Type IN ('11','22'))
CONSTRAINT menu_key CHECK (IF(Enquired is not null) Action_Type IN ('11','22'))
-- CONSTRAINT menu_keyi CHECK (CASE WHEN Enquired IS NOT NULL THEN Action_Type IN ('11','22') END)
-- CONSTRAINT menu_keyi CHECK (CASE WHEN LEN(Enquired)>0 THEN (Action_Type '11' OR Action_Type='22') ELSE NULL END)
)
【问题讨论】:
-
将您的数据添加为格式化文本而不是图像 - 对每个人都更好。
-
@Damien 即使这样也不起作用 CONSTRAINT menu_key CHECK (((Enquired IS NULL) OR (Enquired is not null AND [Action_Type] IN ('11','22'))))
标签: sql-server if-statement case check-constraints