사용자 이름을 나타내는 Microsoft SQL 데이터베이스에 VARCHAR (30) 열이 있습니다. 특정 범위의 문자 만 사용하도록 허용하는 CHECK 제약 조건을 추가하고 싶습니다. 구체적으로 a-z, A-Z, 밑줄 및 대시를 사용할 수 있습니다. 어떤 표현을 사용해야합니까? 당신의 정렬은 대소 문자를 구분하지 않는 경우데이터에 나타날 수있는 유효한 문자 집합을 지정하는 MSSQL의 VARCHAR 열에 CHECK 제약 조건을 만들려면 어떻게해야합니까?
4
A
답변
5
create table t (
a varchar(30) check (
a like replicate('[a-zA-Z\_-]', len(a)) escape '\'));
는 당신은 [a-z]
및 [A-Z]
모두 필요하지 않습니다.
3
CREATE TABLE T
(
a VARCHAR(30) NOT NULL UNIQUE
CHECK (a NOT LIKE '%[^a-zA-Z\_-]%' ESCAPE '\')
);