create proc InsertIntoNewsImage
@nimagefalsename varchar(50),
@nimagetruename varchar(50)
as
declare @nid int
set @nid = select @@IDENTITY
insert into newsImage(nid,nimagefalsename,nimagetruename) values(@nid,@nimagefalsename,@nimagetruename)

解决方案 »

  1.   

    create proc InsertIntoNewsImage
    @nimagefalsename varchar(50),
    @nimagetruename varchar(50)
    as
    declare @nid int
    set @nid =  @@IDENTITY
    insert into newsImage(nid,nimagefalsename,nimagetruename) values(@nid,@nimagefalsename,@nimagetruename)
      

  2.   

    @@IDENTITY 是事后用的,在追加数据前,@@IDENTITY 是空值如果nid是自动编号,不需要你指定。
    declare @nid int
    set @nid = select @@IDENTITY
    insert into newsImage(nid,nimagefalsename,nimagetruename) values(@nid,@nimagefalsename,@nimagetruename)
      
     
    -->insert into newsImage(nimagefalsename,nimagetruename) values(@nimagefalsename,@nimagetruename)
      
      

  3.   

    楼上说的对,如果没有自动增长列那是不可以的。。
    如果想实现自动增长可以使用如下语句
    insert into newsImage(nid,nimagefalsename,nimagetruename) select sum(nid)+1,@nimagefalsename,@nimagetruename from newsImage
      

  4.   

    主要是这个错误 呀,明白是语法错嘛,其它的我想楼主应该处理好了吧set @nid = select @@IDENTITY===set @nid = @@IDENTITY