对于我的一个专栏,我试图强制执行一种模式。第一个字母应为D
大写,其余 3 个字符应为数字。例如:
D678
, D890
,D000
我对CHECK
约束和正则表达式之类的东西很陌生。
以下是我到目前为止所做的,(我认为)强制执行一般模式。但是,当我尝试添加类似的东西d900
时,即使它是小写的 d。我预计这会失败。
有人可以帮忙吗:
CREATE TABLE Systems(
SystemsID NVARCHAR(4),
Title NVARCHAR(30),
CONSTRAINT chk_SystemsID CHECK (SystemsID LIKE '[D][0-9][0-9][0-9]'));
似乎数据库和列排序规则不区分大小写,因此
LIKE
表达式也不区分大小写。在这种情况下执行区分大小写比较的一种方法是添加一个
COLLATE
子句,指定区分大小写的排序规则。例如,如果您的数据库默认排序规则是不区分大小写的排序规则,例如 Latin1_General_CI_AS,那么下面的示例将使用文字排序规则的区分大小写版本覆盖该排序规则,并执行您想要的区分大小写的比较:以下是相关的校对文档页面供您阅读: