asdfasfasdf

Exists中的Select不能进行赋值操作

就是下面一段代码:

IF EXISTS (SELECT @MyValue = MyValue FROM TestTable WHERE Condition = 'ABC')
BEGIN
    
PRINT @MyValue 
END

在SSMS中进行调试,会报错:

消息 102,级别 15,状态 1,第 3 行
'=' 附近有语法错误。

这个错误应该是前面那个等号报的,因为做了下面这个调试:

IF EXISTS (SELECT 1 FROM TestTable WHERE Condition = 'ABC')
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

如果哪位高手知道原因,顺便指导一下吧,呵呵。

posted on 2007-05-16 16:23  明达  阅读(416)  评论(0编辑  收藏  举报

导航