2011-03-10 6 views
0

linq to sql .dbml,데이터베이스의 외래 키

데이터베이스에 외래 키 제약 조건을 추가하는 가장 좋은 방법은 무엇입니까? ALTER TABLE Staffs Add CONSTRAINT fk_Staffs FOREIGN KEY(UserId) REFERENCES Users(Id);

나는 문제없이 이것을 쓸 수 있습니다. 그러나 데이터베이스 테이블이 증가하면 Add Constraint 외국 스크립트를 유지하기가 어렵습니다. 때마다 데이터베이스 열에 여러 번 업데이 트가있을 때마다 나는 그 테이블을 수정 스크립트를 업데이 트 내 머리를 부술 것입니다.

간단한 절차가있을 수 있습니까? .dbml에서 드래그 앤 드롭을 사용하여 외래 키를 추가 할 수 있습니다. 그 외래 키를 내가 위에 쓴 것과 같은 스크립트로 내보낼 수있는 방법이 있습니까? 이 배포를 수행 할 때 좋습니다.

아니면 테이블에 변경 사항이있을 때마다 alter 스크립트를 작성하고 업데이트해야합니까? 조언을주십시오

+0

어떤 종류의 데이터베이스를 사용하고 있습니까? –

+0

나는이 명령을 ** 한번 ** 데이터베이스에 적용해야하고 그런 다음에 끝내야한다고 이해한다 : –

+0

MSSQL을 사용 중이다. 예. 그러나 데이터베이스 열 이름이 변경되면 어떻게됩니까? 반드시 칼럼을 업데이트하기 위해 alter 스크립트로 가야한다. – VeecoTech

답변

1

실제로 FK 관계를 변경하는 데이터베이스 업데이트마다 한 번만 수행하면됩니다.
데이터베이스 리팩토링과 관련하여 일반적으로 전체 리팩터링이 중요하지 않습니다.

그러나 스크립트 작성을 원하지 않으면 테이블 디자이너를 사용할 수 있습니다. SQL Management Studio.

  1. 오른쪽 클릭 테이블 -> 디자인
  2. 가 오른쪽 appropritate 데이터베이스 열 (디자이너의 행 중 하나)를 클릭 - 대화 상자에서> 관계
  3. 를 새로운 관계를 추가하고 관련 테이블을 선택하고 속성 편집기의 열
  4. 완료.
1

올바른 방법입니다. 당신은 디자이너에서 그것을 다른 대답으로 쓰여진 것처럼 여기에서 할 수 있습니다. 그렇지만 개발에서 생산으로 승진시켜야한다면 손으로 직접해야하며 매우 지루하고 쉽게 오류가 발생할 수 있습니다.

변경을 수행하는 디자이너를 사용하고 SQL 관리 스튜디오에서 마우스 오른쪽 버튼을 클릭하고 '스크립트 객체 ...'를 선택할 수 있습니다. 그것보다 많이 입력 할 필요가 없습니다.

테이블 이름이 변경되었습니다. 글쎄, 자주 그렇게해서는 안된다!

많은 일이 발생하면 열 이름을 지정하는 방법에 대해 팀과 명명 규칙을 만들어야하며 작업량이 제한 될 것을 권장합니다.