2012-09-22 3 views
3

예를 들어 '성별'필드가 있고 남성, 여성 또는 남녀 공통 값만 허용하려고한다고 가정합니다. SQL 서버 관리 스튜디오에서 가능합니까?SQL SVR 08 R2 필드를 특정 값으로 제한

업데이트 : 지금까지 솔루션은 원하는 열을 마우스 오른쪽 버튼으로 클릭하면 '제약 조건 확인'기능을 가리 킵니다.

여전히 구문 오류가 발생합니다. 제약 조건을 입력하는 방법에 대한 생각은?

대답 : 나는 그냥 MySQL을 달리이

Gender = 'Male' OR Gender = 'Female' OR Gender = 'Unisex' 

답변

4

를 좋아 입력하는 데 필요한 밝혀, MSSQL은 ENUM 데이터 형식이 없습니다. 이 작업을 수행 할 수있는 유일한 방법은 응용 프로그램 수준에서 값을 트랩하는 것입니다. 성별에 기본 테이블에서 많은 관계로 하나를 다른 테이블을 생성하고 생성 - : 또는 CHECK 제약

ColumnName varchar(10) 
CHECK(ColumnName IN ('Male', 'Female', 'Unisex')) 
DEFAULT 'Unisex' 
+0

또는 열거 형으로 열거 형을 저장하고 숫자 범위를 확인하십시오. – usr

+0

check 제약 조건을 정의 할 수있는 옵션을 찾았지만 유효성 검사 오류가 계속 발생합니다. – Zizo47

+0

@ Zizo47, 오류가 발생하는 경우 질문을 편집하고 전체 텍스트 오류를 ​​게시하십시오. 주석에 넣으려고하지 마십시오. 코드와 주석이 잘 맞지 않습니다. – Yaroslav

2

를 사용하여 다음을 수행 할 수있다. - 다음과 같은 제약 조건을 만듭니다.

CREATE TABLE Person 
(
    Id int NOT NULL, 
    Gender varchar(200) 
    CONSTRAINT chk_Gender CHECK (Gender IN ('Male', 'Unisex', 'Female')) 
) 
+0

이 방법이 효과적이지만, 내 DB에 이와 같은 정적 테이블을 채우는 것은 아닙니다. – Zizo47

관련 문제