varchar () 열을 특정 값으로 제한 하시겠습니까?
예를 들어 SQL Server 2008의 varchar는 4 개의 고유 한 값을 지정하는 방법이 MS입니까?
예를 들어 가능한 값으로 '매일', '주간', '월간', '연간'만 허용하는 빈도 (varchar)라는 열이 필요합니다.
테이블을 만들 때 SQL Server Management Studio 내에서 접근 할 수 있습니까?
check constraint
값을 제한하는 해당 열에 대한 추가를 이미 보며 ? 다음과 같은 것 :
CREATE TABLE SomeTable
(
Id int NOT NULL,
Frequency varchar(200),
CONSTRAINT chk_Frequency CHECK (Frequency IN ('Daily', 'Weekly', 'Monthly', 'Yearly'))
)
검사 제약을 원합니다 .
CHECK 제약 조건은 다른 열의 데이터를 기반으로하지 않는 논리식에서 유효한 값을 결정합니다. 예를 들어 급여 열의 값 범위는 $ 15,000에서 $ 100,000 사이의 데이터 만 허용되는 CHECK 제약 조건을 만들어 제한 할 수 있습니다. 이 급여가 정규 급여 범위를 넘어서 입력되는 것을 방지합니다.
다음과 같은 것을 원합니다.
ALTER TABLE dbo.Table ADD CONSTRAINT CK_Table_Frequency
CHECK (Frequency IN ('Daily', 'Weekly', 'Monthly', 'Yearly'))
위의 링크에 설명 된대로 스칼라 함수를 사용하여 검사 제약 조건을 구현할 수도 있습니다.
개인적으로 나는 그것을 tinyint로 코딩하고 :
- 둘 중 하나 : 클라이언트에서 텍스트로 변경하고 1과 4 사이의 제약 조건을 확인하십시오.
- 또는 : 외래 키가있는 조회 테이블 사용
원인 :
텍스트를 저장하는 데 평균 8 바이트, tinyint의 경우 1 바이트가 붙습니다. 수백만 행 이상이 차이를 만들 것입니다.
데이터 정렬은 어떻습니까? "Daily"는 "DAILY"와 동일합니까? 비용 종류의 비교를 수행 비용이 필요합니다.
마지막으로 "격주"또는 "매시간"을 추가해야해야 할 일이 있습니까? 조회 테이블에 새 행을 추가 할 수있을 때 스키마 변경이 필요합니다.
테이블을 편집 할 때
마우스 오른쪽 버튼을 클릭-> 제약 조건 확인-> 추가-> Frequency IN ('Daily', 'Weekly', 'Monthly', 'Yearly')
필드에 입력하고 (이름) 필드에 좋은 제약 이름을 입력합니다.
완료되었습니다.
참고 URL : https://stackoverflow.com/questions/2441427/restrict-varchar-column-to-specific-values
'IT' 카테고리의 다른 글
Spring CrudRepository를 공장 대소 문자 구분없는 쿼리 (0) | 2020.09.09 |
---|---|
UnmodifiableMap (Java Collections) vs ImmutableMap (Google) [duplicate] (0) | 2020.09.09 |
단위 테스트는 얼마나 깊습니까? (0) | 2020.09.08 |
고유 한 임의의 생성 생성 (0) | 2020.09.08 |
UIPageViewController : 현재 보이는 뷰를 반환 (0) | 2020.09.08 |