但外键不存在
我试图添加引用同一个表的外键约束。
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Documents_Parent]') AND parent_object_id = OBJECT_ID(N'[dbo].[Documents]'))
BEGIN
ALTER TABLE [dbo].[Documents] WITH CHECK ADD CONSTRAINT [FK_Documents_Parent] FOREIGN KEY(LinkedDocumentId)
REFERENCES [dbo].[Documents] ([Id])
END
关系FK_Documents_Parent
不存在。
但是,它会抛出错误:
ALTER TABLE语句与FOREIGN KEY SAME TABLE约束“FK_Documents_Parent”冲突。 冲突发生在数据库“dev”中,表“dbo.Documents”,列'Id'。
如果表中已经有数据,那么列documents_parent中的所有值都应该出现在列ID中,否则会出错。
如果我们想允许的话,你可以使用WITH NOCHECK
http://technet.microsoft.com/en-us/library/ms177463(v=sql.105).aspx
链接地址: http://www.djcxy.com/p/65889.html上一篇: but foreign key doesn't exist
下一篇: 2 foreign key to the same table may cause cycles or multiple cascade paths