Sql Server_加外键时值矛盾引起的问题

在数据库建了两个表,在给一个表加外键,执行下面的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中生成模型,这样不会有错。如果生成模型后,再加外键,此时有些效果无法像前者一样正确的实现。


你可能感兴趣的:(Sql,Server)