2016-11-22 55 views
0

テーブルに外部キー制約を追加する際に問題があります。 私はdb 'XYZ'と 'ABC'に2つのスキーマを持っていて、あるスキーマから別のスキーマにテーブルを参照したいのです。 私が下で言及したクエリは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言う - 1であるか、他のちょうど打ち間違え? –

+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]、である。)

関連する問題