SQL INSERT 语句与外键冲突

INSERT语句与FOREIGNKEY约束"FK__Professio__Depar__09DE7BCC"冲突。该冲突发生于数据库"TestDB",表"dbo.Depar... INSERT 语句与 FOREIGN KEY
约束"FK__Professio__Depar__09DE7BCC"冲突。该冲突发生于数据库"TestDB",表"dbo.DepartInfo", column
'DepartCode'。
有两个表 专业表和系部表 系部表中的主键在专业表中做外键
专业表的主键专业号由数据库自动产生,存储过程如下
ALTER PROC [dbo].[Pro]
@Professioncode nvarchar(50) output,
@Professionname nvarchar(50),
@DepartCode nvarchar(50)
as
begin
select @Professioncode=
(select max(right (rtrim(ProfessionCode),5)+1) from ProfessionInfo) if(@Professioncode is null)
begin
set @Professioncode='10001'
end
SET @Professioncode='ZY'+@Professioncode
INSERT INTO ProfessionInfo values(@Professioncode,@Professionname,@DepartCode,'','','')
return right(@Professioncode,5)
end
调用上面存储过程的时候总是出现上面那个错误
展开
 我来答
szm341
推荐于2017-10-03 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5151万
展开全部
违反外键约束,主要是你给外键表中插入了一个主键表没有的值
如你的departinfo表(主键表)的Code中没有001这个值,而你却给他的外键表添加或修改一个001值,那么就会报这个错了
两个解决办法,1去掉主外键关系;2插入数据时要按主键表值,修改时也要对比主外键值,要保持一致
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式