为什么这在SSMS中有效?

时间:2016-02-18 01:33:03

标签: sql ssms

我那天晚上在数据库类中,我们注意到以下代码似乎有效,但我们无法从逻辑上理解原因。

DECLARE @counter  integer
SET @counter = 42
WHILE @counter < 52
BEGIN 
    set @counter = @counter+++++ + 1
    PRINT 'The counter is ' + cast(@counter as char) 
END

我们意识到我们可以在@counter变量上添加任意数量的+,并且SSMS似乎并不关心,即使它与原始变量不匹配。有人碰巧知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

+ 附加到变量名称不会更改变量名称,因为忽略空格(并且 + 不是变量名中的有效字符)

有关多个 + 标志有效的原因的讨论,请参阅here。基本上,第一个之后的每个 + (或 - )都被视为一元运算符。