这些代码行:
DECLARE @counter integer
SET @counter = 42
WHILE @counter < 52
BEGIN
set @counter = @counter++++++++ 1
PRINT 'The counter is ' + cast(@counter as char)
END
与这些相同(根据SSMS):
DECLARE @counter integer
SET @counter = 42
WHILE @counter < 52
BEGIN
set @counter = @counter + 1
PRINT 'The counter is ' + cast(@counter as char)
END
为什么没有SSMS关注或考虑多个+
?
答案 0 :(得分:0)
第一个加号将被解释为添加操作(将左值添加到左值并返回结果)。所有后续加号将作为其右值的一元加,即“返回后面的数值表达式的值” - 这可以链接:
+(+(+(+1)))
哪个是没有意义的,但它是有效的语法。
如果T-SQL定义了x++
增量运算符,那将是一个不同的故事。没有当前版本的T-SQL。自SQL Server 2008起添加了+=
和-=
,但--
和++
没有。