繁体   English   中英

SQL Server更新多列

[英]SQL Server Updating Multiple Columns

我有一个更新多个列的脚本。 但是,我想确保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,则仅需要更新列值。

您可以使用条件更新:

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,则分配原始值。 否则,将分配空白值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM