2015-11-01 2 views
0

У меня есть следующая таблица:SQL Server ключ ошибка ограничения внешнего

CREATE TABLE [dbo].[Comment] 
(
    [CommentID] INT NOT NULL PRIMARY KEY, 
    [CommentContent] NVARCHAR(MAX) NULL, 
    [CommentDateTime] DATETIME2 NULL, 
    [ArticleID] INT NULL, 
    [ResponseTo] INT NULL, 

    CONSTRAINT [FK_dbo.Comment_dbo.Article_ArticleID] 
     FOREIGN KEY ([ArticleID]) 
     REFERENCES [dbo].[Article] ([ArticleID]) ON DELETE CASCADE, 

    CONSTRAINT [FK_dbo.Comment_dbo.Comment_ResponseTo] 
     FOREIGN KEY ([ResponseTo]) 
     REFERENCES [dbo].[Comment] ([CommentID]) ON DELETE CASCADE 
) 

И я получаю эту ошибку о не в состоянии создать ограничение:

Error: SQL72014: .Net SqlClient Data Provider:
Msg 1785, Level 16, State 0, Line 1
Introducing FOREIGN KEY constraint 'FK_dbo.Comment_dbo.Comment_ResponseTo' on table 'Comment' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

Это говорит о циклах .. Как это исправить?

+0

TL; DR, как исправить это? удаление «CASCADE» ?? – VSG24

ответ

0

Изменение CASCADE до NO ACTION Работало.

CREATE TABLE [dbo].[Comment] 
(
    [CommentID] INT NOT NULL PRIMARY KEY, 
    [CommentContent] NVARCHAR(MAX) NULL, 
    [CommentDateTime] DATETIME2 NULL, 
    [ArticleID] INT NULL, 
    [ResponseTo] INT NULL, 
    CONSTRAINT [FK_dbo.Comment_dbo.Article_ArticleID] FOREIGN KEY ([ArticleID]) 
     REFERENCES [dbo].[Article] ([ArticleID]) ON DELETE CASCADE, 
    CONSTRAINT [FK_dbo.Comment_dbo.Comment_ResponseTo] FOREIGN KEY ([ResponseTo]) 
     REFERENCES [dbo].[Comment] ([CommentID]) ON DELETE NO ACTION 
)