我的SQL Server 2008這樣的存儲過程:SQL服務器 - 檢查輸入參數爲空或零
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
。
現在我想改變這一行爲,如果由於@someval
值0
,一個NULL
存儲在some_column
否則就表現得它現在正在做的方式。 所以我要尋找類似:
if @someval == 0
set some_column = NULL
else
set some_column = ISNULL(@someval, some_column)
我沒有創建一個varchar @sql變量,並調用sq_executesql就可以了(至少這是我想做的最後一件事)的選項。有關如何去做這件事的任何建議?
感謝。這很快且非常有幫助。 – user467947
@ user467947 - 任何時候都歡迎您:) –
除了這段代碼根本不會做同樣的工作 - 如果@ someval不是'0'或'NULL',這會將some_column設置爲NULL (你是否打算在你的CASE表達式中有ELSE @ someval?) –