Aar*_*ght 3 database-design sql-server check-constraints
对于我的一个专栏,我试图强制执行一种模式。第一个字母应为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]'));
Run Code Online (Sandbox Code Playgroud)
似乎数据库和列排序规则不区分大小写,因此LIKE
表达式也不区分大小写。
在这种情况下执行区分大小写的比较的一种方法是添加一个COLLATE
子句,指定区分大小写的归类。例如,如果您的数据库默认排序规则是不区分大小写的排序规则,例如 Latin1_General_CI_AS,下面的示例将使用文本排序规则的区分大小写版本覆盖该排序规则,并执行您想要的区分大小写的比较:
CREATE TABLE Systems(
SystemsID NVARCHAR(4),
Title NVARCHAR(30),
CONSTRAINT chk_SystemsID CHECK (SystemsID LIKE '[D][0-9][0-9][0-9]' COLLATE Latin1_General_CS_AS)
);
Run Code Online (Sandbox Code Playgroud)
以下是供您阅读的相关整理文档页面:
归档时间: |
|
查看次数: |
425 次 |
最近记录: |