gpt4 book ai didi

sql-server - SQL 在编码时接受多个 '+' 但不产生运行时错误,为什么?

转载 作者:行者123 更新时间:2023-12-03 18:57:48 26 4
gpt4 key购买 nike

这些代码行:

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

与这些相同(根据 SSMS):

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

为什么 SSMS 不关心或考虑多个 +

最佳答案

第一个加号会被解释为加法运算(右值与左值相加并返回结果)。所有后续加号将作为其右值的一元加号,即“返回后面的数字表达式的值”——这可以链接:

+(+(+(+1)))

这是没有意义的,但它是有效的语法。如果 T-SQL 定义了一个 x++ 增量运算符,情况就会不同。当前版本的 T-SQL 没有这个。从 SQL Server 2008 开始添加了 +=-=,但是 --++ 没有。

关于sql-server - SQL 在编码时接受多个 '+' 但不产生运行时错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com