Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MSSQL中的VARCHAR列上创建检查约束,指定数据中可能出现的有效字符集?_Sql_Sql Server_Tsql_Check Constraints - Fatal编程技术网

如何在MSSQL中的VARCHAR列上创建检查约束,指定数据中可能出现的有效字符集?

如何在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

我在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 VARCHAR(30) NOT NULL UNIQUE
    CHECK (a NOT LIKE '%[^a-zA-Z\_-]%' ESCAPE '\')
);