sql - 在存储过程中出现 if/else 错误

标签 sql sql-server-2008

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

相关文章:

具有相同 ID 的 MySQL SUM

PHP、MSSQL、SQL SERVER、WAMP、PDO、Windows 身份验证

sql - 在查找值上连接两个 SQL 表的最聪明方法

sql-server-2008 - 无法将 "AdventureWorks2008"示例数据库附加到 SQL Server 2008 中的命名实例

sql - 为什么在希伯来语字符串中搜索值时没有显示结果?

php - 在列中查找子字符串的 MySQL 查询?

mysql - 使用函数创建mysql View

sql - Select 查询的结果返回不带斜杠的值

php - 构建一个调用多个表的wordpress api

c# - 获取本地sql server的实例名