[英]SQL accepts multiple '+' while coding but doesn't produce a run-time error, why?
這些代碼行:
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不關心或考慮多個+
?
第一個加號將被解釋為add操作(將rvalue添加到lvalue並返回結果)。 所有后續加號將作為其右值的一元加,即“返回后面的數值表達式的值” - 這可以鏈接:
+(+(+(+1)))
這是毫無意義的,但它是有效的語法。 如果T-SQL定義了一個x++
增量運算符,那將是一個不同的故事。 沒有當前版本的T-SQL。 +=
和-=
從SQL Server 2008開始添加,但是--
和++
沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.