2011-06-14 1 views
1

sql server에 테이블을 만들었습니다. 그리고 나는 그 테이블에 데이터/행을 삽입했다.테이블에 데이터를 삽입 한 후 테이블간에 외래 키를 만드는 방법은 무엇입니까?

이제 그들 사이에 관계를 만들고 싶습니다. 외래 키 제약 조건을 만들려는 것입니다. 그럴 수 있습니까?

테이블간에 관계를 만들려고 할 때마다 문제가 발생합니다. "변경 사항 저장이 허용됩니다. 변경 한 테이블을 다시 작성하고 삭제해야합니다."

그 중 어떤 관계 (외래 키)를 만들려면 어떻게해야합니까?

내 자식 테이블 디자인이

this is my child table

인이 내 부모 테이블 : - this is my parent table

하시기 바랍니다 내가 작성해야 ALTER 어떤 쿼리 바로 지금 ..? 제대로 스크립트가 될 것

alter table ChildTable 
    add constraint FK_ChildTable_ColumnName foreign key (ColumnName) references ParentTable(PrimaryKeyColumnName) 

[편집] 나는 당신의 설명을 읽어 보면 :

+0

'급여'는 '롤'을 참조해야합니까? –

+0

또한 정확한 쿼리를 원할 경우 테이블 이름을 제공하십시오. 나는 부모 테이블이'testing'이라고 불리는 것을 볼 수 있습니다. 자식 테이블의 이름을 볼 수 없습니다. –

+0

하위 테이블 이름은 emp입니다. –

답변

1

는이 같은 스크립트를 사용하여이 작업을 수행 할 수

alter table emp 
    add constraint FK_emp_salary foreign key(salary) references testing(roll) 
+0

우리 아이 테이블 디자인은 다음과 같습니다 –

+0

@Pushpendra Kuntal - 대답 업데이트 –

0

당신은 때로 믿을 외국 제약 조건을 추가 할 수 있습니다 기존 데이터에 위배됩니다. DBMS에 따라 다르지만 적절한 색인을 먼저 추가해야 할 수도 있습니다. 어떤 경우 든, 기존 데이터가 소개하려는 외래 키와 호환되는지 먼저 확인하십시오. 다시 말해, 외래 키를 먼저 작성한 다음 데이터를 삽입하는 경우 외래 키 위반이 발생하지 않아야합니다.

1

GUI를 사용할 때 문제가 있다고 생각합니다. 이 link을 보면 둥근 방법을 보여줍니다. OK를 클릭 할 때 백그라운드에서 SSMS가 수행하는 테이블 삭제 및 재 작성을 방지하는 기능입니다.

이전 게시물에서 제공 한 코드가이를 수행하는 가장 좋은 방법입니다.

관련 문제