@yyy varchar (100)
刚才漏了数据类型了

解决方案 »

  1.   

    create procedure pro.xxx
    (
    @yyy varchar(50)
    )
    as 
    set nocount ondeclare @sql varchar(MAX)set @sql=。@yyy
    为什么给@yyy 付值后执行村促过程会出错消息 137,级别 15,状态 2,第 17 行
    必须声明标量变量@yyy我明明声明过了(
    @yyy varchar(50)
    )请教大侠varchar(50)
    写了
      

  2.   

    create procedure xxx
    (
    @yyy varchar(50)
    )
    as declare @sql varchar(100)set @sql=@yyySelect @sqlGO
    EXEC xxx 'aaaa'
    --Result
    /*
    aaaa
    */
      

  3.   

    create procedure pro1
    (
    @yyy varchar(50)
    )
    as 
    set nocount ondeclare @sql varchar(MAX)set @sql=@yyy--这样写的话没有问题啊,你是不是还有别的代码省略了?
      

  4.   

    create procedure pro1
    (
    @yyy varchar(50)
    )
    as 
    set nocount ondeclare @sql varchar(MAX)set @sql=
    ...后面是动态sql
    可不可以把
    @yyy  写到动态sql 中
      

  5.   

    我的代码太长了
     能否像paoluo
    那样给个例子,set @sql=
    ...后面是动态sql
    包含@yyy varchar(50)的
    我自己看看,然后就给分
      

  6.   

    把变量写到SQL中时要这样(假设@yyy是表名称):
    declare @sql varchar(MAX)
    set @sql= 'select * from ' + @yyy
      

  7.   

    谢谢!
    假如 where x = @yyy,如何写到动态sql 中?
      

  8.   

    set @sql = 'select * from table where x = ''' + @yyy + ''''
      

  9.   

    intellectual666666() ( ) 信誉:100    Blog   加为好友  2007-07-03 16:40:20  得分: 0  
     
     
       谢谢!
    假如 where x = @yyy,如何写到动态sql 中?
      
     
    -------------
    create procedure xxx
    (
    @yyy varchar(50)
    )
    as declare @sql varchar(100)set @sql= ' Select * From A Where x = ''' + @yyy + ''''EXEC(@sql)GO
    EXEC xxx 'aaaa'