自己写的运行时出错,错误提示为:
An explicit value for the identity column in table 'incaserecords' can only be specified when a column list is used and IDENTITY_INSERT is ON.不明白是什么意思

解决方案 »

  1.   

    SET IDENTITY_INSERT 表名 ON
      

  2.   

    你向这个incaserecords插入值了。
    如果你真的想插入(不是让系统自动生成,你要先运行
    SET IDENTITY_INSERT incaserecords ON
      

  3.   

    即然incaserecordno要用incaseno且一致,incaserecordno就不要用identity
    去除标识,就行了.不然麻烦很多.
      

  4.   

    我说清楚一点,表incaserecords中的incaserecordno是identity列,表中还有一个字段incaseno与incases.incaseno一致,应该怎么做?
      

  5.   

    SET IDENTITY_INSERT incaserecords ON
    代码......
    SET IDENTITY_INSERT incaserecords OFF
      

  6.   

    好等等啊
    create proc prc_inrecord @in_no int,@isbn char(10),@pubname nvarchar(30),@inquantity int,@inprice float,@indiscount float,@inmayang float,@inshiyang float,@date smalldatetime,@operatorname nvarchar(10),@istuihuo char(2)
    as
    begin
      
      declare @operatorid char(4)
      declare @merchandiseid int
      begin
      select @operatorid = operatorid from operators where operatorname = @operatorname
      select @merchandiseid = merchandisesid from merchandises where isbn = @isbn
      insert into incaserecords values(@in_no,@merchandiseid,@inquantity,@inprice,@indiscount,@inmayang,@inshiyang,@date,@operatorid,@istuihuo)
      update incases set inquantity = inquantity + @inquantity,inmayang = inmayang + @inmayang,inshiyang = inshiyang + @inshiyang where incaseno = @in_no
      update merchandises set kucun = kucun + @inquantity where merchandisesid = @merchandiseid
      end
    end
      

  7.   

    SET IDENTITY_INSERT incaserecords ON
    ................
    SET IDENTITY_INSERT incaserecords OFF中间的代码指的是什么代码捏?
      

  8.   

    create proc prc_inrecord @in_no int,@isbn char(10),@pubname nvarchar(30),@inquantity int,@inprice float,@indiscount float,@inmayang float,@inshiyang float,@date smalldatetime,@operatorname nvarchar(10),@istuihuo char(2)
    as
    begin
      
      declare @operatorid char(4)
      declare @merchandiseid int
      begin
      select @operatorid = operatorid from operators where operatorname = @operatorname
      select @merchandiseid = merchandisesid from merchandises where isbn = @isbn
    SET IDENTITY_INSERT incaserecords ON
      insert into incaserecords values(@in_no,@merchandiseid,@inquantity,@inprice,@indiscount,@inmayang,@inshiyang,@date,@operatorid,@istuihuo)
    SET IDENTITY_INSERT incaserecords OFF
      update incases set inquantity = inquantity + @inquantity,inmayang = inmayang + @inmayang,inshiyang = inshiyang + @inshiyang where incaseno = @in_no
      update merchandises set kucun = kucun + @inquantity where merchandisesid = @merchandiseid
      end
    end
      

  9.   

    请把incaserecords表的结构贴出来
      

  10.   

    create table incases
    (
       incaseno int identity(10000000,1) constraint pk_incaseno primary key,
       pubid char(4) not null references publishers(pubid),
       inquantity int not null,
       inmayang float  not null,
       inshiyang float not null,
       indate  smalldatetime not null,
       operatorid char(4) not null references operators(operatorid),
       istuihuo nvarchar(2) not null
    )
    create table incaserecords
    (
      incaserecordno int identity(10000000,1) constraint pk_inr primary key,
      incaseno int not null references incases(incaseno),
      merchandisesid int not null references merchandises(merchandisesid),
      inquantity int not null,
      incasemayang float not null,
      incaseshiyang float not null,
      indate smalldatetime not null,
      operatorid char(4) not null references operators(operatorid),
      istuihuo nvarchar(2) not null
    )
      

  11.   


      insert into incaserecords values(@in_no,@merchandiseid,@inquantity,@inprice,@indiscount,@inmayang,@inshiyang,@date,@operatorid,@istuihuo)改成:
      insert into incaserecords values(@merchandiseid,@inquantity,@inprice,@indiscount,@inmayang,@inshiyang,@date,@operatorid,@istuihuo)或者SET IDENTITY_INSERT incaserecords ON
      insert into incaserecords (  incaserecordno ,
      incaseno ,
      merchandisesid ,
      inquantity ,
      incasemayang ,
      incaseshiyang ,
      indate ,
      operatorid ,
      istuihuo 
    ) values(@in_no,@merchandiseid,@inquantity,@inprice,@indiscount,@inmayang,@inshiyang,@date,@operatorid,@istuihuo)
    SET IDENTITY_INSERT incaserecords OFF
      
      

  12.   

    incaserecords只有9个字段,下面insert的这句怎么有10个字段呢?insert into incaserecords values(@in_no,@merchandiseid,@inquantity,@inprice,@indiscount,@inmayang,@inshiyang,@date,@operatorid,@istuihuo)如果你的字段确定没错了,那么就用
    insert into incaserecords (incaseno,merchandisesid,...)
    values (@in_no,@merchandiseid,...)明确写出要填写的字段的名称,而incaserecordno留空,让它自动生成。