我在向表中添加外键约束时遇到问题。 我的数据库中有两个模式' XYZ'和' ABC'我想从一个模式引用一个表到另一个模式。 我在下面提到的查询在SQL服务器上正常工作,但是在VS2015上构建解决方案时,我收到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 :(得分:0)
您需要在SSDT项目中包含或引用所有内容。这意味着你需要CREATE SCHEMA [ABC]
某个地方以及CREATE TABLE [ABC].[VersionInfo] ( ... )
。 (这假设您已经拥有CREATE SCHEMA [XYZ]
,或者[XYZ]
确实是[dbo]
,您通常可以免费获得。{/ p>