0

표현한다. 이를 위해 HeadID 열을 내 FamilyMembers 테이블에도 포함 시켜서 FamilyHeads 테이블에서 참조해야합니까? 또는 이것에 대한 해결책은 무엇입니까? 기본 키와 외래 키를 사용해야하지만 구현에는 확신이 없다는 것을 알고 있습니다. 코드를 도와주세요.사용하여 키와 제약 내가 2 개 테이블이

+0

현재 기본 키가 없습니까? – gbn

+0

예, 현재 키를 할당하지 않았습니다. – sqlchild

답변

1

추가 기본 키

ALTER TABLE FamilyHeads WITH CHECK ADD 
    CONSTRAINT PK_FamilyHeads PRIMARY KEY CLUSTERED (HeadID) 
GO 
ALTER TABLE FamilyMembers WITH CHECK ADD 
    CONSTRAINT PK_FamilyMembers PRIMARY KEY CLUSTERED (MemberID) 
GO 

는 중복 HeadNames을 가질 수 FK

ALTER TABLE FamilyMembers WITH CHECK ADD 
    CONSTRAINT FK_FamilyMembers_FamilyHeads FOREIGN KEY (HeadID) 
      REFERENCES FamilyHeads (HeadID) 
GO 

추가 외래 키

--Same datatype, NOT NULL! 
ALTER TABLE FamilyMembers ADD 
    HeadID int NOT NULL 
GO 

에 대한 열을 추가 하시겠습니까? 아니요 인 경우

ALTER TABLE FamilyHeads WITH CHECK ADD 
    CONSTRAINT UQ_FamilyHeads_HeadName UNIQUE (HeadName) 
GO 

예인 경우 어떤 머리에 추가 할 회원을 어떻게 알 수 있습니까?

그리고 HeadID의 FamilyMembers에 고유하지 않은 색인을 추가하십시오.

+0

님, 기본 키를 추가하는 동안 WITH CHECK & CLUSTERED의 기능은 무엇입니까? 나는 CLUSTERED 인덱스에 대해 알고 있지만 클러스터 된 기본 키는 무엇입니까? – sqlchild

+0

인터넷에서 ALTER TABLE을 검색하십시오. – gbn

+0

네, 각기 다른 HeadNames와 MemberNames를 가질 수 있습니다. 각 HeadName마다 GroupCode 만 다를 것입니다. – sqlchild

관련 문제