CREATE proc proc_c 
@a varchar(200)) ,
@str varchar(4000) output
as
begin
  declare @str varchar(4000)
  select @str = ''
  select @str = @str + xm + ',' from l_Zzzyjsryylb where jmsbh=@a
  /*  select @str = left(@str,len(@str)-1) */
end

解决方案 »

  1.   

    CREATE proc proc_c 
    ( @a varchar(200),
     @b varchar(4000) output
    )
    as
    begin
      declare @str varchar(4000)
      select @str = ''
      select @str = @str + xm + ',' from l_Zzzyjsryylb where jmsbh=@a
      /*  select @str = left(@str,len(@str)-1) */
      end
      

  2.   

    错了一点点:)
    CREATE proc proc_c 
    @a varchar(200)) ,
    @str varchar(4000) output
    as
    begin
      select @str = ''
      select @str = @str + xm + ',' from l_Zzzyjsryylb where jmsbh=@a
      /*  select @str = left(@str,len(@str)-1) */
    end
      

  3.   

    CREATE PROC func_c  @a varchar(200),@str varchar(4000) OUTPUT
    AS 
    begin  select @str = ''
      select @str = @str + xm + ',' from l_Zzzyjsryylb where jmsbh=@a
      return @str
    end
      

  4.   

    这样也可以呀
    CREATE proc func_c @a varchar(200)
    as
    begin
      declare @str varchar(4000)
      select @str = ''
      select @str = @str + xm + ',' from l_Zzzyjsryylb where jmsbh=@a
      /*  select @str = left(@str,len(@str)-1) */
      return @str
    end
    调用
    declare @aa  varchar(4000)
    exec @aa=func_c @a=值
    print @aa
      

  5.   

    如果我想在一个sql语句中调用这个存储过程应该怎么写呢?
    jmsbh即是存储过程需要的参数?select jmsbh,dwmc from l_Zjzxdwjbqk
      

  6.   

    这就是存储过程不方便的地方了,存储过程只能直接传参数进来exec func_c '你输入的字符串'
      

  7.   

    可以在2000上执行:
    exec func_c select jmsbh from l_Zjzxdwjbqk
      

  8.   

    exec func_c select jmsbh from l_Zjzxdwjbqk这样执行只能得到一个字段呀,我如果要得到很多字段呢。
    要出现这样的效果:select jmsbh,dwmc from l_Zjzxdwjbqk