2013-11-14 3 views
0

RelationshipCodeLookup 테이블은 AgentTransmission 테이블의 기본 키 필드를 외래 키로 사용합니다. 동일한 AgentTransmission 기본 키가있는 RelationshipCodeLookup 테이블에는 단 5 개의 레코드 만있을 수 있습니다.복합 키 필드의 숫자 제한

AgentTransmission에서 외래 키 및 5 층까지 분리 int 필드를 포함 RelationshipCodeLookup에 복합 키를 작성하는 것이 가능? 예를 들어, 하나 명의 에이전트에 대한 기록의 완전한 그룹은 다음과 같습니다

FK CK 
132 1 
132 2 
132 3 
132 4 
132 5 

다른 레코드가 132FK에 추가 할 시도 된 경우, 테이블에 제약 조건의 어떤 위반 및 수없는 기록하는 것 추가 될 수 있습니다.

이것이 가능합니까?

답변

1

질문을 올바르게 이해하면 CK 열에 대한 간단한 점검 제한이 필요한 것을 수행 할 수 있다고 생각합니다. Check 제약 조건은 CK 열의 값이 지정된 범위 (1에서 5)에 있어야합니다.

CREATE TABLE RelationshipCodeLookup(
    FK INT NOT NULL, 
    CK INT NOT NULL, 
    CONSTRAINT PK_RelationshipCodeLookup PRIMARY KEY CLUSTERED (FK, CK) 
); 
ALTER TABLE RelationshipCodeLookup WITH CHECK ADD CONSTRAINT CK_RelationshipCodeLookup CHECK (CK>=1 AND CK<=5); 
ALTER TABLE RelationshipCodeLookup CHECK CONSTRAINT CK_RelationshipCodeLookup;