gpt4 book ai didi

sql-server - MsSQL 检查约束的正则表达式

转载 作者:行者123 更新时间:2023-12-04 14:27:51 27 4
gpt4 key购买 nike

我正在尝试对我拥有的表进行列级检查约束。我希望检查插入到列中的值并确保它们只是字符。

例如 values ('hello','there') 会通过,但 values ('h3llo','th3r3') 不会。

我可以让它为特定数量的字符工作(见下表),但我想让它动态化。

我也尝试过 ^[a-zA-Z]+$ ,但这似乎也不起作用。

下面是简单的表格布局。

CREATE TABLE owner
(
owner_id ID IDENTITY(1, 1) PRIMARY KEY,
owner_firstname FIRSTNAME,
owner_lastname LASTNAME,
CONSTRAINT firstname_cc CHECK (owner_firstname LIKE '[a-zA-Z][a-zA-Z][a-zA-Z]'),
CONSTRAINT lastname_cc CHECK (owner_lastname LIKE '[a-zA-Z][a-zA-Z][a-zA-Z]')
);

最佳答案

SQL Server LIKE 语法不接受正则表达式。

您可以使用 check (owner_firstname not like '%[^A-Z]%')

此约束拒绝包含不在 A-Z 范围内的字符的任何值。

您不需要同时指定 a-z,除非您使用的是区分大小写的排序规则。

关于sql-server - MsSQL 检查约束的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41781977/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com