1

我已经阅读了很多关于“...循环或多路径”错误的解释。但在我看来,我有一个不同的问题,我的约束中没有循环或级联,只是为了设置 null WHERE id_boss = id_work。

一张桌子:

CREATE TABLE [dbo].[Workers](
    [id_work] [int] NOT NULL,
    [id_boss] [int] NULL,
    [money] [int] NOT NULL,
 CONSTRAINT [PK_Workers] PRIMARY KEY CLUSTERED 
(
    [id_work] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

另一个约束:

ALTER TABLE Workers ADD CONSTRAINT FK_Boss FOREIGN KEY (id_boss) 
REFERENCES Workers (id_work) ON DELETE SET NULL

错误:

消息 1785,级别 16,状态 0,第 5 行在表 'Workers' 上引入 FOREIGN KEY 约束 'FK_Boss' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。消息 1750,级别 16,状态 0,行 5 无法创建约束。请参阅以前的错误。

感谢您的任何帮助或解释。帕维尔

4

1 回答 1

0

实际上,您不能添加链接到同一个表的外键。这就是为什么它称为键 - 它应该链接到其他表。

您可以在此处阅读更多详细信息:http: //msdn.microsoft.com/en-us/library/ms175464 (v=sql.105).aspx

于 2013-11-05T11:01:16.197 回答