2010-12-13 3 views
4

사용자 이름을 나타내는 Microsoft SQL 데이터베이스에 VARCHAR (30) 열이 있습니다. 특정 범위의 문자 만 사용하도록 허용하는 CHECK 제약 조건을 추가하고 싶습니다. 구체적으로 a-z, A-Z, 밑줄 및 대시를 사용할 수 있습니다. 어떤 표현을 사용해야합니까? 당신의 정렬은 대소 문자를 구분하지 않는 경우데이터에 나타날 수있는 유효한 문자 집합을 지정하는 MSSQL의 VARCHAR 열에 CHECK 제약 조건을 만들려면 어떻게해야합니까?

답변

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 '\') 
);