这是我建的一个学生表,其中我想插入的,sclass是所属班级的意思,从班级表中查找来的班级编号,下面是我写的插入语句
其中空的那些都是可以默认为空的插入没问题.就是插入所属班级编号的时候出的报错问题:insert into student(sid,sn,sex,stime,sjg,smz,szm,sfz,sadd,syb,spho,sfu,sfpho,smu,smpho,srxsj,sclass,sxh,cjz,cjtime,zhxgr,zhtime) select '1','1','男','','','','','','','','','','','','','','class.classname  from class','','','','','';这是报错信息:
消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 FOREIGN KEY 约束"FK__student__sclass__07020F21"冲突。该冲突发生于数据库"studentmanagement",表"dbo.class", column 'classid'。
语句已终止。

解决方案 »

  1.   

    可以默认为空一般是指默认为数据库中的Null,而不是你插入的空字符
      

  2.   

    说明下,我那外键表里对应的班级编号是newid()自动生成的而且外键表里是有值的..
      

  3.   

    也可能classid重复,classid是主键,必须是唯一的
      

  4.   

    你的sclass='class.classname from class'
      

  5.   

    越看越看不懂了select '1','1','男','','','','','','','','','','','','','','class.classname from class','','','','','';
    什么意思?
      

  6.   

    你这句sql相当于insert into student(sid,sn,sex,stime,sjg,smz,szm,sfz,sadd,syb,spho,sfu,sfpho,smu,smpho,srxsj,sclass,sxh,cjz,cjtime,zhxgr,zhtime) values('1','1','男','','','','','','','','','','','','','','class.classname from class','','','','','')
      

  7.   


    第一种:你插入的 (FOREIGN KEY这个字段)  在数据库 已经存在! 数据库有了一个  1  外键插入的时候 你又插入 一个 1
    第二种:你插入的数据不是来源外键!