我有一个更新多列的脚本。但是,我想确保UPDATE
列表中的列仅在它们为NULL时才更新。这是脚本:
DECLARE @blank nvarchar (255) = '';
UPDATE Table
SET
Column1 = @blank,
Column2 = @blank,
Column3 = @blank
WHERE
Column1 IS NULL OR
Column2 IS NULL OR
Column3 IS NULL
这不起作用,因为即使只有Column1为null,所有列也会更新。
如果该值为NULL,我只需要更新列值。
答案 0 :(得分:5)
您可以使用条件更新:
update table
set Column1 = coalesce(Column1, @blank),
Column2 = coalesce(Column2, @blank),
Column3 = coalesce(Column3, @blank)
where Column1 IS NULL OR
Column2 IS NULL OR
Column3 IS NULL;
如果列值不为null,则分配原始值。否则,将分配空白值。