if和if之间的区别

时间:2012-10-15 09:16:20

标签: sql sql-server-2008

我有这个存储过程,我想知道“如果存在”是否会实际比较select语句返回的值,或者它只是检查是否可以执行该条件,对不起这样一个愚蠢的问题,但我是新的到SQL,

declare @m_ID_v int
set @m_ID_v = ( select ID_C from M_T where MName_C = @MName_parameter)

declare @g bit
if exists (select G_L_Column from G_L_table Where M_ID_Column = @M_ID_variable)
    set @g_v = 1
else
    set @g_variable = 0

我的选择陈述

select G_L_Column from G_L_table Where M_ID_Column = @M_ID_variable

返回true或false,所以只想确定“if exists”是否可以作为“if”

2 个答案:

答案 0 :(得分:4)

使用if exists无效if。它不检查返回的值是true还是false,它检查是否存在值。

如果您的查询始终返回值,则if exists将始终评估为true。

答案 1 :(得分:2)

EXISTS (Transact-SQL)

指定要测试行是否存在的子查询。

如果子查询包含任何行,则返回TRUE。