SQL Server检查约束以检查位置中的符号

Sam*_*era 0 sql-server sql-server-2008

我的表中有一个名为durationtype 的列varchar(5).

如何添加检查约束来检查前两个字符和后两个字符是否为数字,第三个字符是":"

例如:

23:25
Run Code Online (Sandbox Code Playgroud)

c 2*_*c 2 5

这应该工作:

create table test (
id int identity(1,1),
name varchar(5) constraint tmp_chk check(name like '[0-9][0-9]:[0-9][0-9]')
)
Run Code Online (Sandbox Code Playgroud)

测试用例:

insert into test (name) values ('12:34')
insert into test (name) values ('12:a4')
insert into test (name) values ('12x34')
insert into test (name) values ('a2:34')
insert into test (name) values ('123:34')
Run Code Online (Sandbox Code Playgroud)

  • @Tony:然后它没有约束.它也没有达到OP的要求. (3认同)