2016-11-22 1 views
0

테이블에 외래 키 제약 조건을 추가하는 데 문제가 있습니다. db라는 'XYZ'와 'ABC'에 두 개의 스키마가 있는데 한 스키마에서 다른 스키마로 테이블을 참조하려고합니다. 아래에서 언급 한 쿼리는 SQL 서버에서 제대로 작동하지만 VS2015에서 솔루션을 빌드 할 때 SQL71501 오류가 발생합니다.SQL71501 외래 키 : 오브젝트 오류에 대한 미확인 참조

CREATE TABLE [XYZ].[ProductData] 
(
    [ID] [int] IDENTITY(100,1) NOT NULL, 
    [ExchangePlanID] [varchar](25) NULL, 
    [OracleFinanceMarketNbr] [int] NULL, 
    [IssueStateCode] [char](2) NULL, 
    [PlanID] [varchar](50) NULL, 
    [PrimaryPlatformCode] [char](4) NULL, 
    [PlanYear] smallint NOT NULL, 
    [VersionRefID] int NOT NULL, 
    [InsertedBy] [varchar](50) NOT NULL DEFAULT (suser_sname()), 
    [InsertedOnUTC] [datetime] NOT NULL DEFAULT (getutcdate()), 
    [ModifiedBy] [varchar](50) NOT NULL DEFAULT (suser_sname()), 
    [ModifiedOnUTC] [datetime] NOT NULL DEFAULT (getutcdate()), 
PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY] 
) ON [PRIMARY] 
GO 

ALTER TABLE [XYZ].[ProductData] WITH CHECK ADD CONSTRAINT [FK_ProductData_VersionRefID] 
FOREIGN KEY([VersionRefId]) REFERENCES [ABC].[VersionInfo] ([ID]) 
GO 

표 [ABC]. [VersionInfo]는 이미 DB에 있습니다.

동일한 스키마 (예 : 'XYZ')의 테이블을 참조하는 경우 내 솔루션을 구축하는 동안 오류가 발생하지 않습니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

+0

그냥 확인 - 당신이 ABC.VersionRefInfo를 참조하지만 제약 ABC.VersionInfo 말한다 - 하나 또는 다른 단지 오식? –

+0

http://stackoverflow.com/questions/4452132/add-foreign-key-relationship-between-two-databases – NefariousB

+0

@JamesCasey 여기는 오타이며 내 검색어는 아닙니다. 그래도 지적 주셔서 감사합니다. – S7H

답변

0

SSDT 프로젝트에 모든 것이 포함되거나 참조되어야합니다. 즉, CREATE SCHEMA [ABC] 어딘가에 CREATE TABLE [ABC].[VersionInfo] (...)이 필요합니다. (이것은 당신이 중 하나를 이미 CREATE SCHEMA [XYZ]이 가정 또는 [XYZ] 정말 당신이 일반적으로 무료로 얻을 [dbo]입니다.)