Re: [SQL ] 一句TSQL很像是Bug的更新语法

楼主: TeemingVoid (TeemingVoid)   2014-01-16 15:47:21
※ 引述《forkome (初心者)》之铭言:
: 各位大大好
: 最近小弟在Trouble Shooting时看到一句SQL,所使用的语言是C# + MS SQL
: Update Table set Column1 = Column1 + 1 Where Column2 = +@Param
: Cmd.Parameters.Add.......(@param)
: 我以为这句不会执行会挂
: 但Column2 =+@Param 居然不影响执行结果,请问+号对MS SQL来说
: 有什么特殊用法吗?还是单纯的不严谨没有被Compile抓出来而已?
其实没什么特别的,加法符号当成 Unary Operator 时,单纯就是“不作用”而已。
根据官方手册
这一页 Remarks 指出的注意事项:
Although a unary plus can appear before any numeric expression,
it performs no operation on the value returned from the expression.
Specifically, ...
也就是说,加号可以用作二元运算字进行数学加法(@x + @y) 可以进行复合
运算(set @x += @n),但是当成单元运算子时,对于运算式的值则不进行任
何操作(performs no operation)。
所以,写不写 + 号,以您的例子来说,都没有影响。 ^_^
就好像一般我们都只写 3 而不会特别写 +3。 :p
作者: forkome (初心者)   2014-02-06 08:36:00
原来如此,感谢回复 <_O_>

Links booklink

Contact Us: admin [ a t ] ucptt.com