@yhm varchar(20) output,
@id int output,
@lb int output,
@cp varchar(20) output,
@pp varchar(20) output,
@imgsize int output,
@ms varchar(50) output,
@ImgUrl varchar(50) output,
@sj datetime output,
@fartherId int declare 
asdelete FROM users_zt where rq<>@rq;select @yhm=yhm, @id=id from users where yhm=@login_name;insert into users_zt(yhm,syjh,cp,rq,sj) values(@yhm,0,1,@rq,@rq) ;set @@rowcount=0
insert into cp(pd,lb,cp,pp,ms,imgsize,imgurl,rq,sj,userid) values(0,@lb,@cp,@pp,@ms,@imgsize,@ImgUrl,@rq,@sj, @id);if @@rowcount>0
begin
select @fartherId=fatherid from catlog where id=@lb; update catlog set cpnum=cpnum+1 where id=@fartherId;
end
GO报错内容:declare附近有语法错误
@@rowcount附近有语法错误
请高手帮忙看看 问题解决 再加40分

解决方案 »

  1.   

    @yhm varchar(20) output,
    @id int output,
    @lb int output,
    @cp varchar(20) output,
    @pp varchar(20) output,
    @imgsize int output,
    @ms varchar(50) output,
    @ImgUrl varchar(50) output,
    @sj datetime output,
    @fartherId int declare    -----declare去掉
    asdelete FROM users_zt where rq<>@rq;select @yhm=yhm, @id=id from users where yhm=@login_name;insert into users_zt(yhm,syjh,cp,rq,sj) values(@yhm,0,1,@rq,@rq) ;set @@rowcount=0                 ---去掉
    insert into cp(pd,lb,cp,pp,ms,imgsize,imgurl,rq,sj,userid) values(0,@lb,@cp,@pp,@ms,@imgsize,@ImgUrl,@rq,@sj, @id);if @@rowcount>0
        begin
            select @fartherId=fatherid from catlog where id=@lb;        update catlog set cpnum=cpnum+1 where id=@fartherId;
        end
    GO
      

  2.   

    declare--放上面来
    @yhm varchar(20) output, 
    @id int output,
    @lb int output,
    @cp varchar(20) output,
    @pp varchar(20) output,
    @imgsize int output,
    @ms varchar(50) output,
    @ImgUrl varchar(50) output,
    @sj datetime output,
    @fartherId int declare 
    set @@rowcount=0这句不用写
      

  3.   

    @yhm varchar(20)  ,   
    @id int  ,
    @lb int ,
    @cp varchar(20)  ,
    @pp varchar(20)  ,
    @imgsize int ,
    @ms varchar(50)  ,
    @ImgUrl varchar(50)  ,
    @sj datetime  ,
    @fartherId int   
    as....
      

  4.   


    你这种写法 报:不能在declare里面设置变量 output
      

  5.   

    看错了,原来是存储过程里面参数,不是声明变量,declare不要了
    declare--放上面来
      

  6.   


    declare附近有语法错误
    as附近有语法错误
      

  7.   


    必须声明变量 @fartherId
      

  8.   


    @login_name,@rq 没有定义
    insert into cp(pd,lb,cp,pp,ms,imgsize,imgurl,rq,sj,userid) values(0,@lb,@cp,@pp,@ms,@imgsize,@ImgUrl,@rq,@sj, @id);
    这一行中 多个变量没有赋值
      

  9.   


    CREATE procedure addition_cp@rq datetime , 
    @login_name varchar(20) ,
    @yhm varchar(20) ,
    @id int ,
    @lb int ,
    @cp varchar(20) ,
    @pp varchar(20) ,
    @imgsize int ,
    @ms varchar(50) ,
    @ImgUrl varchar(50) ,
    @sj datetime
    as
    delete FROM users_zt where rq<>@rq;select @yhm=yhm, @id=id from users where yhm=@login_name;insert into users_zt(yhm,syjh,cp,rq,sj) values(@yhm,0,1,@rq,@rq) ;
    insert into cp(pd,lb,cp,pp,ms,imgsize,imgurl,rq,sj,userid) values(0,@lb,@cp,@pp,@ms,@imgsize,@ImgUrl,@rq,@sj, @id);
    if @@rowcount>0
    begin
    select @fartherId=fatherid from catlog where id=@lb; update catlog set cpnum=cpnum+1 where id=@fartherId;
    end
    GO
    全码
      

  10.   


    在AS后面加上这一行
    declare @fartherId int
      

  11.   

    消息 137,级别 15,状态 1,过程 addition_cp,第 25 行
    必须声明标量变量 "@fartherId"。
    消息 137,级别 15,状态 2,过程 addition_cp,第 27 行
    必须声明标量变量 "@fartherId"。所有代码,编译下错误很明显。
      

  12.   

    CREATE procedure addition_cp@rq datetime , 
    @login_name varchar(20) ,
    @yhm varchar(20) ,
    @id int ,
    @lb int ,
    @cp varchar(20) ,
    @pp varchar(20) ,
    @imgsize int ,
    @ms varchar(50) ,
    @ImgUrl varchar(50) ,
    @sj datetime
    as
    declare @fartherId intdelete FROM users_zt where rq<>@rq;select @yhm=yhm, @id=id from users where yhm=@login_name;insert into users_zt(yhm,syjh,cp,rq,sj) values(@yhm,0,1,@rq,@rq) ;
    insert into cp(pd,lb,cp,pp,ms,imgsize,imgurl,rq,sj,userid) values(0,@lb,@cp,@pp,@ms,@imgsize,@ImgUrl,@rq,@sj, @id);
    if @@rowcount>0
        begin
            select @fartherId=fatherid from catlog where id=@lb;        update catlog set cpnum=cpnum+1 where id=@fartherId;
        end
    GO