我有这个存储过程,我想知道“如果存在”是否会实际比较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”
答案 0 :(得分:4)
使用if exists
无效if
。它不检查返回的值是true还是false,它检查是否存在值。
如果您的查询始终返回值,则if exists
将始终评估为true。
答案 1 :(得分:2)