要在一开始把@str 初始化一下,即select @str=''

解决方案 »

  1.   

    alter procedure test1(@str varchar(80) output)
    as
    begin
    declare @i int
    set @i=0
    set @str = ''
      while @i<10
      begin
        set @i=@i+1
        set @str=@str+rtrim(ltrim(cast(@i as varchar(10))))
      end
    end declare @str varchar(80)
    exec test1 @str output
    print @str
      

  2.   

    把變數 @str 初值 設為 '' 便可有輸出alter procedure test1(@str varchar(80) output)
    as
    begin
    declare @i int
    set @str=''
    set @i=0
      while @i<10
      begin
        set @i=@i+1
        set @str=@str+rtrim(ltrim(cast(@i as varchar(10))))
      end
    end declare @str varchar(80)
    exec test1 @str output
    print @str
      

  3.   

    跟据具体情况,不要滥用函数,上面的rtrim和ltrim跟就没有价值。