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

Jak*_*les 4 sql t-sql sql-server check-constraints

我在Microsoft SQL数据库中有一个代表用户名的VARCHAR(30)列.我想添加一个CHECK约束,它只允许使用一定范围的字符:特别是az,AZ,下划线和破折号.我必须使用什么表达方式?

Rem*_*anu 5

create table t (
   a varchar(30) check (
      a like replicate('[a-zA-Z\_-]', len(a)) escape '\'));
Run Code Online (Sandbox Code Playgroud)

如果您的排序规则不区分大小写,那么您不需要[a-z][A-Z].