MSSQL外键关系和空值

亚伦·S

我在将外键添加到现有表(外键可以为null)时遇到问题。

说我有一个用户表和一个数据表。数据表在用户表ID列的“ createdBy”列上已经具有有效的外键。我刚刚在数据表“ EditedBy”中添加了第二列,该列允许使用空值(这意味着数据记录尚未编辑)。因此,所有现有记录的该列的值都为NULL。

我试图在Data.EditedBy和User.Id之间创建一个外键,但是当我尝试应用它时,出现以下错误。

ALTER TABLE语句与FOREIGN KEY约束“ FK_Data_User_EditedBy”冲突。在数据库“ Test”的表“ dbo.User”的列“ Id”中发生了冲突。

数据表中的NULL值似乎有问题,但是NULL是外键可接受的值。

我想念什么?

更新:完整语句如下

USE [Test]
GO

ALTER TABLE [dbo].[Data]  WITH CHECK ADD  CONSTRAINT [FK_Data_User_EditedBy] FOREIGN KEY([Id])
REFERENCES [dbo].[User] ([Id])
GO
亚伦·S

好吧,我觉得自己是个白痴。我使用Management Studio创建关系,并发布了等效的alter语句(也无效)后,我意识到我正在尝试在[data]的ID字段和的ID字段之间创建外键。 [用户]。

显然,这是行不通的。

我修复了该语句以使用[data]表中的正确字段,一切都很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章