2012-06-06 3 views
1

VS 2010에서 데이터베이스 프로젝트로 작업하기 위해 SSMS를 사용하여 로컬 프로젝트 데이터베이스에 스키마를 직접 변경 한 다음 체크인 할 준비가되었을 때 스키마 비교, 로컬 데이터베이스와 프로젝트 비교를 수행하여 변경 사항을 확인합니다 . 그런 다음 변경 사항을 기록하면 데이터베이스 프로젝트에 스키마 객체 스크립트가 변경되거나 작성됩니다. 모두 잘 보이면 TFS 변경 사항을 확인할 수 있습니다.외래 키에 대해 별도의 파일을 생성하려면 스키마 비교를 어떻게 구성해야합니까?

외래 키와 색인에 대한 우리의 표준은 별도로 저장 한 것입니다. 그건 내가 이런 일을 말하여 새 테이블의 열을 정의에도 불구하고 있습니다 :

CREATE TABLE Billing.EntryPointProduct 
(
    EntryPointProductId INT IDENTITY(1,1) PRIMARY KEY, 
    EntryPointId INT FOREIGN KEY REFERENCES Billing.EntryPoint(EntryPointId), 
    ProductId INT FOREIGN KEY REFERENCES ProductCatalog.Product(ProductID) 
) 

우리가 정말, 결국, 외국인의 각각에 대한 EntryPointProduct 테이블에 대한 파일과 파일 원하는 것은 주요 개체. 그러나 지금은 스키마 비교가 모든 것을 하나의 테이블 스크립트로 생성합니다. 이전에 스키마 비교를 사용하여이 작업을 수행 한 적이 있지만이 작업을 수행 할 수있는 방법을 찾지 못했습니다. 누구든지 조언 할 수 있습니까? 그것은 다음과 같습니다 있도록

답변

0

당신은 당신의 DDL을 변경할 수 있습니다 대신 시스템에서 생성 된 이름으로

CREATE TABLE Billing.EntryPointProduct 
(
    EntryPointProductId INT IDENTITY(1,1), 
    EntryPointId INT, 
    ProductId INT, 
CONSTRAINT [PK_EntryPointProduct] PRIMARY KEY CLUSTERED (EntryPointProductId) 
) 

ALTER TABLE Billing.EntryPointProduct 
WITH CHECK ADD CONSTRAINT FK_EntryPointProduct_EntryPoint FOREIGN KEY(EntryPointId) REFERENCES Billing.EntryPoint(EntryPointId) 

ALTER TABLE Billing.EntryPointProduct 
WITH CHECK ADD CONSTRAINT FK_EntryPointProduct_ProductCatalog FOREIGN KEY(ProductId) REFERENCES ProductCatalog.Product(ProductID) 

당신이 3 개 개의 파일이있을 것이다, 당신의 FK의이 (FK_ *) 실제 이름을 것이다 그런 식으로하는 스크립트가 생성 될 때마다 무작위로 생성되므로 2 개의 별도로 스크립팅 된 데이터베이스간에 스키마 비교를 수행하면 일치하지 않습니다. (내가 PK 코드를 수정 한 이유와 같은 이유)

+0

확실히 결승전에 나가기를 원합니다. 필자는 자신의 방식대로 입력 한 다음 스키마 비교를 수행하여 여러 줄 버전을 자체 생성 할 수 있기를 바랬습니다. FK 이름에 관한 당신의 요지는 또한 의미가 있습니다. 나는 이것을 오늘 시험 할 것이다. –

+1

좋은 콜 Levi, 그 트릭을했습니다. 이런 식으로 개별적으로 정의하는 것은 쉽지 않지만 스키마 비교를 통해 파일을 올바르게 설정하면 비명 성한 이름의 이점을 얻게됩니다. 테이블 정의에 정의 된 키는 파일 이름 대신 "테이블에서 :"와 비교 결과에 나타납니다. –

관련 문제