如何在MSSQL中的VARCHAR列上创建检查约束,指定数据中可能出现的有效字符集?
我在Microsoft SQL数据库中有一个表示用户名的VARCHAR(30)列。我想添加一个检查约束,它只允许使用一定范围的字符:特别是a-z、a-z、下划线和破折号。我必须用什么表达如何在MSSQL中的VARCHAR列上创建检查约束,指定数据中可能出现的有效字符集?,sql,sql-server,tsql,check-constraints,Sql,Sql Server,Tsql,Check Constraints,我在Microsoft SQL数据库中有一个表示用户名的VARCHAR(30)列。我想添加一个检查约束,它只允许使用一定范围的字符:特别是a-z、a-z、下划线和破折号。我必须用什么表达 create table t ( a varchar(30) check ( a like replicate('[a-zA-Z\_-]', len(a)) escape '\')); 如果排序规则不区分大小写,则不需要同时使用[a-z]和[a-z] CREATE TABLE T ( a
create table t (
a varchar(30) check (
a like replicate('[a-zA-Z\_-]', len(a)) escape '\'));
如果排序规则不区分大小写,则不需要同时使用[a-z]
和[a-z]
CREATE TABLE T
(
a VARCHAR(30) NOT NULL UNIQUE
CHECK (a NOT LIKE '%[^a-zA-Z\_-]%' ESCAPE '\')
);