首页 > 解决方案 > SQL 检查约束使用 LIKE 和 OR

问题描述

我在 SQL Server 2018 上不断收到以下消息。

消息 4145,级别 15,状态 1,第 9 行 在预期条件的上下文中指定的非布尔类型表达式,靠近“或”。

CREATE TABLE tbl_owners(
ownerID     INT IDENTITY(10001,1) PRIMARY KEY,

lastName    NVARCHAR(30)  NOT NULL,

firstName   NVARCHAR(30)  NOT NULL,

address     NVARCHAR(100) NOT NULL,

postcode    NVARCHAR(20)  NOT NULL,

telno       NVARCHAR(20)  NOT NULL CHECK (telno LIKE '0%' OR '44%' OR '353%')
);

有人可以告诉我我做错了什么。

提前致谢

标签: sqlsql-server

解决方案


它就像LIKE布尔表达式中的任何其他用法一样。您需要重复完整的表达式:

telno NVARCHAR(20) NOT NULL CHECK
     (telno LIKE '0%' OR telno LIKE '44%' OR telno LIKE '353%')

推荐阅读