多数の列を持つデータベース テーブルがあります。そのテーブルのレコードを更新する T-SQL ストアド プロシージャを作成したいのですが、そのプロシージャを使用してすべての列または特定の列のみを更新し、列の値に NULL が渡された場合に既存の値を更新しないようにしたいと考えています。変更されます。現在、これらのようなソリューションを使用できます
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)
どちらもうまく機能します。私の唯一の問題は、任意の列に null を明示的に保存したい場合があり、上記のソリューションではそれができないことです。誰が私に何をすべきか教えてもらえますか?