2012-05-17 2 views
0

간단한 조인 테이블 (사용자의 취향에 관계없이 테이블 등)을 만드는 데 문제가 있습니다.SQL Server 2008 - 조인 테이블 만들기

이들은 테스트 테이블이므로 많은 부분이 없습니다.

첫 번째 표는

CREATE TABLE dbo.CareerField(
CareerFieldID int IDENTITY(1,1) NOT NULL, 
CareerFieldName varchar(100) NOT NULL 
) 

두 번째 표는

CREATE TABLE dbo.Cluster(
ClusterID int IDENTITY(1,1) NOT NULL, 
ClusterName varchar(100) NOT NULL 
) 
다 대다 관계를 만들 수 (테이블 조인)

세 번째 표는 내가 노력하고

CREATE TABLE dbo.CareerField_Cluster(
CareerFieldID int NOT NULL, 
ClusterID int NOT NULL 
) 

임 이 세 번째 테이블에서 다음을 사용하여 외래 키를 설정하려면

ALTER TABLE dbo.CareerField_Cluster 
ADD CONSTRAINT FK_CareerField_Cluster_CareerFieldID 
FOREIGN KEY(CareerFieldID) REFERENCES dbo.CareerField(CareerFieldID) 

ALTER TABLE dbo.CareerField_Cluster 
ADD CONSTRAINT FK_CareerField_Cluster_ClusterID 
FOREIGN KEY(ClusterID) REFERENCES dbo.Cluster(ClusterID) 

그러나, 나는

메시지 1776, 수준 16, 상태 0, 줄 1의 오류가 계속 참조되는 테이블 'dbo.CareerField'그 경기에는 기본 또는 후보 키가 없습니다 외부 키 'FK_CareerField_Cluster_CareerFieldID'의 참조 열 목록 메시지 1750, 수준 16, 상태 0, 줄 1 제약 조건을 만들지 못했습니다. 이전 오류를 참조하십시오.

나는 기본 키로 두 필드를 설정하려고하지만 키를 생성 할 때 나 별도의 테이블을 선택하도록 허용하지 않습니다 - 내가 클러스터 테이블을 참조하는 다음 CareerField 테이블과 클러스터 ID를 참조 CareerFieldID을 선택할 수 없습니다.

MySQL에서이 문제가 없었으며 SQL Server를 처음 사용했습니다. 어떤 도움이라도 대단히 감사합니다.

+0

참조 된 테이블에 기본 키를 지정해야합니다. –

답변

3

각 테이블 CareerFieldCluster에 대해 CONSTRAINT 지시문을 통해 지정된 PK가 있는지 확인하십시오.

CREATE TABLE [dbo].[CareerField] 
(
    [CareerFieldID] [int] IDENTITY(1,1) NOT NULL, 
    [CareerFieldName] [varchar](100) NOT NULL, 
    CONSTRAINT [PK_Career] PRIMARY KEY CLUSTERED 
    (
     [CareerFieldID] ASC 
    ) 
) 
+1

나는 머리를 책상 위에 치고 나서 몇 시간 동안 내 이름을 저주 할 것이다. 나는 그것을 놓쳤다는 것을 믿을 수 없다. 감사! :) – dekron