Visual Studio 2013 SQL存储过程更新位列

时间:2014-11-07 12:19:30

标签: sql stored-procedures visual-studio-2013

所以我有一个存储过程,我需要根据另一列是否为空来将列值更新为True / False。

我想它必须是这样的:

if([Template] is not NULL)
begin
    update CMM_Templates
    set [Template_Exists]=1
    where [ID] = @id
end

尝试更新数据库时,它会发出:

An error occurred while the batch was being executed.

CMM_Templates存在,所有列和变量都存在,唯一的问题是在行中:

set [Template_Exists]=1

如果我通过变量更新列,它可以工作。但如果我直接更新它就不行。

我试过了:

set [Template_Exists]=1
set [Template_Exists]='True'
set [Template_Exists]=cast('True' as bit)
set [Template_Exists]=cast(1 as bit)

它们似乎都不起作用。 我确定我错过了一些东西,但可以弄清楚是什么。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我不明白这部分 if([Template] is not NULL)

我建议您尝试:

   update CMM_Templates
   set [Template_Exists]=1
   where [ID] = @id AND [Template] is not NULL