我有一个用于 sql server 2008 的存储过程,如下所示:
create procedure test_proc
@someval int,
@id int
as
update some_table
set some_column = ISNULL(@someval, some_column)
where id = @id
go
如果参数@someval
为NULL
,则此 SP 将仅使用 中的现有值some_column
。
现在我想改变这种行为,如果 is 的值@someval
,0
aNULL
被存储在其中,some_column
否则它的行为就像它现在所做的那样。所以我正在寻找类似的东西:
if @someval == 0
set some_column = NULL
else
set some_column = ISNULL(@someval, some_column)
我没有创建 varchar @sql 变量并在其上调用 sq_executesql 的选项(至少这是我想做的最后一件事)。有关如何执行此操作的任何建议?