Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 引用的表中没有主键或候选键。。。与外键中的引用列列表匹配_Sql_Foreign Keys_Composite Key - Fatal编程技术网

Sql 引用的表中没有主键或候选键。。。与外键中的引用列列表匹配

Sql 引用的表中没有主键或候选键。。。与外键中的引用列列表匹配,sql,foreign-keys,composite-key,Sql,Foreign Keys,Composite Key,创建表时出现此错误[dbo].[WeibullSummaryDetails] 这是我的两张桌子 CREATE TABLE [dbo].[WeibullFilterDetails] ( [WeibullFilterDetailsId] [int] IDENTITY(1,1) NOT NULL, [ProjectTeamId] int not null, [WeekStartDate] date not NULL, [WeekEndDa

创建表时出现此错误
[dbo].[WeibullSummaryDetails]

这是我的两张桌子

CREATE TABLE [dbo].[WeibullFilterDetails]
(
        [WeibullFilterDetailsId] [int] IDENTITY(1,1) NOT NULL,
        [ProjectTeamId] int not null,
        [WeekStartDate] date not NULL,
        [WeekEndDate] date  not null ,
        [IsRefreshed] bit NULL,

        CONSTRAINT FK_WeibullFilterDetails_WeibullFilterDetails 
            FOREIGN KEY ([ProjectTeamId])
            REFERENCES [dbo].[ProjectTeams]([Id]),
        PRIMARY KEY ([ProjectTeamId], [WeibullFilterDetailsId])
) 

CREATE TABLE [dbo].[WeibullSummaryDetails]
(
    [WeibullSummaryDetailsId] [int] IDENTITY(1,1) NOT NULL,
    [WeibullFilterDetailsId] int not null,
    [ProjectTeamId] int not null,
    [ActualEstimatedBugCount] int NULL,
    [CurrentBugCount] int NULL,
    [PercentageBugFound] float NULL,
    [PercentageBugResolved] float NULL,
    [BugsToFind] int NULL,
    BugsToResolve int NULL,
    LinearEquation nvarchar(100) null,
    RSquare float NULL,
    Shape float NULL,
    Scale float NULL

    PRIMARY KEY ([WeibullSummaryDetailsId], [WeibullFilterDetailsId],[ProjectTeamId]),
    CONSTRAINT FK_WeibullSummaryDetails_WeibullFilterDetails 
        FOREIGN KEY ([WeibullFilterDetailsId],[ProjectTeamId])
        REFERENCES [dbo].[WeibullFilterDetails]([WeibullFilterDetailsId],[ProjectTeamId])
) 
详细错误消息

味精1776,第16级,状态0,第14行
引用的表“dbo.WeibullFilterDetails”中没有与外键“FK_WeibullSummaryDetails_WeibullFilterDetails”中的引用列列表匹配的主键或候选键

Msg 1750,第16级,第0状态,第14行
无法创建约束。请参阅前面的错误

我看过其他关于这个错误的文章,通常给出的解决方案是,如果父表有一个复合键,那么这两列也应该出现在子表中,并且应该用于外键约束

这正是我在这里所做的,但仍然得到这个错误


非常感谢您的帮助

对于
[dbo].[WeibullFilterDetails]
您将主键定义为
([ProjectTeamId],[WeibullFilterDetailsId])
,但在您编写的
引用
子句中([WeibullFilterDetailsId],[ProjectTeamId])
顺序不匹配。尝试:

CREATE TABLE [dbo].[WeibullSummaryDetails](
    ...
    FOREIGN KEY ([ProjectTeamId],[WeibullFilterDetailsId])
    REFERENCES [dbo].[WeibullFilterDetails]([ProjectTeamId],[WeibullFilterDetailsId])
);

对于
[dbo].[WeibullFilterDetails]
您将主键定义为
([ProjectTeamId],[WeibullFilterDetailsId])
,但在您编写的
引用中([WeibullFilterDetailsId],[ProjectTeamId])
——顺序不匹配。尝试:

CREATE TABLE [dbo].[WeibullSummaryDetails](
    ...
    FOREIGN KEY ([ProjectTeamId],[WeibullFilterDetailsId])
    REFERENCES [dbo].[WeibullFilterDetails]([ProjectTeamId],[WeibullFilterDetailsId])
);