在MSSQL中,何时使用@符号,何时不使用?

时间:2016-05-10 08:12:38

标签: sql-server triggers sql-server-2012

在MSSQL中我知道你声明并设置这样的变量,例如

DECLARE @CONTNUMBER VARCHAR(10)
SET @CONTNUMBER= 'ABC1234567'


但是,在使用触发器并在select语句中设置变量时,我遇到了这个问题。

SELECT SMS.VEHICLE, @CONTNUMBER = SMS.CONTNO, SMS.ITEMNO, SMS.[STATUS], ...

enter image description here


但是当我省略前导 @ 符号

时,错误消息就会消失
SELECT SMS.VEHICLE, CONTNUMBER = SMS.CONTNO, SMS.ITEMNO, SMS.[STATUS] ...

enter image description here

所以我的问题是,我何时使用,何时在使用变量时省略 @ 符号?

TYIA

2 个答案:

答案 0 :(得分:1)

引用变量时使用@。

错误不是@ - 它混合了@而不是@输出。

如果您懒得阅读错误消息,它会告诉您。您不能在一个语句中进行赋值(@variable =)和数据检索(SMS.Vehicle到输出中)。

答案 1 :(得分:1)

如@TomTom所述,您无法分配变量并在同一Python3 pdf2txt.py -A -M 15.0 -L 0.3 -W 0.2 -F 0.5 -V -o output.txt -t text input.pdf 中返回结果集。

在您的代码中,SELECTSELECT CONTNUMBER = SMS.CONTNO相同 - 您只是对输出列进行别名。 这包括:https://msdn.microsoft.com/en-us/library/ms176104.aspx

此外,变量包含在https://msdn.microsoft.com/en-us/library/ff848809.aspx