最近遇到一个比较辣手的问题,有一存储过程生成数据不稳定。在检查存储过程的是时候,无意间瞄到有一处怪异的写法:set @varA=@strB++'strabc'首先@strB是一个字符型,既然是字符型,那@strB++难道也能自增?
可是奇怪的是,这段代码貌似大多数情况下可以执行!但是整个存储过程就不稳定了...
我不知道是不是这里出现问题了!请教一下大虾们了!谢谢~

解决方案 »

  1.   

    @strB++ 不会实现自增,我看是手误多写了一个加号
      

  2.   

    相当于+''+,经测试
    select ++++++++++++++++'aaa'
    select 'aaa'+++++''
    结果都为aaa
      

  3.   

    -- +在这里只起到字符串串联的作用,下面的结果都一样的
    declare @a varchar(20), @b varchar(10)
    set @b='QQ'
    set @a=+@b++'strabc'
    select @a
    set @a=+++++@b++'strabc'
    select @a
    set @a=+++++@b++++++++++'strabc'
    select @a