Ces lignes de code:
DECLARE @counter integer SET @counter = 42 WHILE @counter < 52 BEGIN set @counter = @counter++++++++ 1 PRINT 'The counter is ' + cast(@counter as char) END
Sont les mêmes que ceux-ci (selon SSMS):
DECLARE @counter integer SET @counter = 42 WHILE @counter < 52 BEGIN set @counter = @counter + 1 PRINT 'The counter is ' + cast(@counter as char) END
Pourquoi le SSMS ne prend-il pas en count ou ne prend pas en count plusieurs +
?
Le premier plus sera interprété comme l'opération d'ajout (ajoutez rvalue à lvalue et renvoyez le résultat). Tous les signes plus suivants agiront comme un plus unaire vers sa valeur, c'est-à-dire "returnner la valeur de l'expression numérique qui suit" – ceci peut être chaîné:
+(+(+(+1)))
Ce qui est inutile, mais c'est une syntaxe valide. Ce serait une histoire différente si T-SQL définissait un opérateur d'incrément x++
. Aucune version actuelle de T-SQL n'a cela. +=
et -=
ont été ajoutés à partir de SQL Server 2008, mais --
et ++
non.