我对 SQL 查询相对非常陌生,但我有这个存储过程,我试图获取声明变量的值,如下所述,但出现错误,
这里第一行是 20,
declare @m_ID_v int
set @m_ID_v = ( select ID_C from M_T where MName_C = @MName_parameter)
declare @g bit
if (select G_L_Column from G_L_table Where M_ID_Column = @M_ID_variable)
set @g_v = 1
else
set @g_variable = 0
我得到的异常:
Msg 4145, Level 15, State 1, Procedure GetID, Line 20
An expression of non-boolean type specified in a context where a condition is expected, near 'set'. Msg 156, Level 15, State 1, Procedure GetID, Line 21 Incorrect syntax near the keyword 'else'.
现在,如果我删除 declare @g...
并尝试解析它,则不会发生错误
编辑
我希望我的代码通过我的 select 语句检查返回值,因此“如果存在”并不是真正需要的,抱歉。
最佳答案
尝试使用 if exists :
declare @g_v 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_v = 0
关于sql - 在存储过程中出现 if/else 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892194/