微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在存储过程中获取if / else错误

如何解决在存储过程中获取if / else错误

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) = value )
    set @g_v = 1
else
    set @g_variable = 0

解决方法

我对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

我得到的异常:

消息4145,级别15,状态1,过程GetID,第20行在“
条件”附近的“设置”附近指定了非布尔类型的表达式。消息156,级别15,状态1,过程GetID,第21行关键字’else’附近的语法错误。

现在,如果我删除declare @g...并尝试对其进行分析,则不会发生任何错误

编辑

我希望我的代码通过我的select语句检查返回的值,所以对不起,“如果存在”不是真正要查找的内容。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。