ALTER PROCEDURE au_produce_BigAndSmallCate_get
(
@level smallint,
@bigcateid varchar(20)
)
AS
declare @sql nvarchar(1024)   set @sql='select [zh-cn],CATEID from AU_PRODUCTCATE'
   if(@level=1)
  set  @sql=@sql+' where level=1'
   else 
  set  @sql=@sql+' where level=2 and left(CATEID,2)=@bigcateid order by CATEID desc'
exec sp_executesql @sql
RETURN 出错:必须声明变量 '@bigcateid'。

解决方案 »

  1.   

    set  @sql=@sql+' where level=2 and left(CATEID,2)=' + @bigcateid + ' order by CATEID desc'
      

  2.   

    声明了,但是你把它做成字符串了alexzhang00(三角猫) 给出了解决办法。
      

  3.   

    @bigcateid不能放在''里面,要放在外面,用+连接,它是变量啊。
    放在''里面的成了字符串了,是不能变的。
      

  4.   

    谁有带样式的,还有编辑 删除(有提示) 分页(显示上一页,下一页,还显示页码)功能完善 的DataGrid 代码 ,发给我学习一下  我EMAIL : [email protected]
      

  5.   

    动态SQL语句不支持变量和临时表的