Exists中的Select不能进行赋值操作
就是下面一段代码:
IF EXISTS (SELECT @MyValue = MyValue FROM TestTable WHERE Condition = 'ABC')
BEGIN
PRINT @MyValue
END
BEGIN
PRINT @MyValue
END
在SSMS中进行调试,会报错:
消息 102,级别 15,状态 1,第 3 行
'=' 附近有语法错误。
'=' 附近有语法错误。
这个错误应该是前面那个等号报的,因为做了下面这个调试:
IF EXISTS (SELECT 1 FROM TestTable WHERE Condition = 'ABC')
BEGIN
PRINT 'Succeed!'
END
BEGIN
PRINT 'Succeed!'
END
这个就什么问题都没有,所以我就郁闷了,我直接把EXISTS的内容单独运行,也是没有问题的,而且结果也只有一条。在网上找了好半天,也没有什么结果,依稀有人说EXISTS和SELECT INTO有冲突,具体原因不知道。
但所幸还是有解决办法的,至少我还不是太笨么,以下代码可以实现同样效果:
SELECT @MyValue = MyValue FROM TestTable WHERE Condition = 'ABC'
IF @MyValue IS NOT NULL
BEGIN
PRINT @MyValue
END
IF @MyValue IS NOT NULL
BEGIN
PRINT @MyValue
END
如果哪位高手知道原因,顺便指导一下吧,呵呵。