1
我有一個數據庫表,它有大量的列。我想編寫一個T-SQL存儲過程,它將更新該表中的記錄,並且我希望使用該過程來更新所有或唯一的特定列,以便如果傳遞NULL值的任何列值都不應超過現有值被改變。目前,我可以像使用這些更新SQL Server表中的特定列並忽略空值
UPDATE table
SET column1 = COALESCE(@param1, column1),
column2 = COALESCE(@param2, column2),
...
WHERE id = @id
或
UPDATE table
set column1 = isnull(@param1,column1),
column2 = isnull(@param2,column2)
他們都行之有效的解決方案,我唯一的問題是,有時我想明確地保存無效在任一列,我不能用它做以上解決方案有人可以告訴我該怎麼辦?
詹姆斯感謝這個解決方案,它看起來非常簡單的解決方案,以實現唯一的問題是,對於大的表,我們需要創建更新存儲過程這麼多額外的參數,但到目前爲止,這是最好的解決方案,我有直至除非別人帶來另一種解決方案。再次感謝。 – Waqas