在数据库建了两个表,在给一个表加外键,执行下面的SQL语句时
Alter table tblEmployee
add foreign key (DepartmentId)
references tblDepartment (ID)
报了下面的error:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_tblEmployee_DepartmentId__5F7E2DAC". The conflict occurred in database "Sample", table "dbo.tblDepartment", column 'ID'.
通常是因为:the values in dbo.tblDepartment.ID didn't match any of values in tblEmployee.DepartmentId.
因为我的 tblDepartment表是空的,ID字段一个值都没有,而 tblEmployee.DepartmentId有好多值,所以只需要在tblDepartment插入数据即可。如果ID是自增的,那么只需给该表其他字段插入数据,ID就有数据了,此时再只执行上面的外键语句就不会报错了。
注意:在MVC项目中使用Entity Framework的Database First去自动生成模型(.edms等文件)时,如果所使用的表包含外键,那么要先把外键在数据库中加好,然后去VS中生成模型,这样不会有错。如果生成模型后,再加外键,此时有些效果无法像前者一样正确的实现。