在创建外键时,出错。
USE E_Market
GO
ALTER TABLE CommodityInfo
ADD CONSTRAINT FK_SortId FOREIGN KEY(SortId) references CommoditySort(SortId)
GO
想在E_Market数据库中的表 CommodityInfo 为SortId设置外键约束时出错:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_SortId". The conflict occurred in database "E_Market", table "dbo.CommoditySort", column 'SortId'.
原因:因为 CommodityInfo 的SortId已经存在数据,所以添加约束失败
解决方案:
USE E_Market
GO
ALTER TABLE CommodityInfo WITH NOCHECK --(不检查表是否已存在数据,直接添加约束)
ADD CONSTRAINT FK_SortId FOREIGN KEY(SortId) references CommoditySort(SortId)
GO
注意,with nocheck 意味着之前添加的数据不受新添约束的影响,对于要求数据准确性高的情况下不使用这种方法。
本文介绍了解决在SQL Server中因已有数据导致的外键约束冲突的方法。通过使用WITH NOCHECK选项,可以在不检查现有数据的情况下成功添加外键约束。
1081

被折叠的 条评论
为什么被折叠?



