在创建外键时,出错。
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 意味着之前添加的数据不受新添约束的影响,对于要求数据准确性高的情况下不使用这种方法。