Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 Microsoft SQL 数据库中有一个代表用户名的 VARCHAR(30) 列。我想添加一个 CHECK 约束,它只允许使用特定范围的字符:具体来说,az、AZ、下划线和破折号。我必须使用什么表达方式?
create table t ( a varchar(30) check ( a like replicate('[a-zA-Z\_-]', len(a)) escape '\'));
如果您的排序规则不区分大小写,那么您不需要同时使用[a-z]and [A-Z]。
[a-z]
[A-Z]
CREATE TABLE T ( a VARCHAR(30) NOT NULL UNIQUE CHECK (a NOT LIKE '%[^a-zA-Z\_-]%' ESCAPE '\') );