0
目前我有一個存儲過程有一個更新語句,約有40個值被更新。其中一些僅在使用COALESCE()時輸入不爲空時纔會更新。我想知道我是否也可以做類似的事情,但基於另一個參數的輸入以及本身。例如:如何根據2個參數設置更新語句中的值?
UPDATE MyTable
SET FirstName = @FirstName,
LastName = @LastName,
JobNumber = (IF @MyMainParameter IS NOT NULL
COALESCE(@JobNumber, JobNumber)
ELSE
JobNumber)
WHERE ...
顯然,這並不工作,但在這個例子中,我只是想更新的工作號碼,如果@MyMainParameter不爲空,如果@JobNumber參數不爲null。
很顯然,我可能只是做基於我@MyMainParameter是否爲空或不是,如一個單獨的更新語句:
IF @MyMainParameter IS NOT NULL
BEGIN
UPDATE MyTable
SET JobNumber = COALESCE(@JobNumber, JobNumber)
WHERE...
END
然而,它似乎並沒有最佳的做2條更新語句,如果我可以只做1.