微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我们使用加法赋值 (+=) 时更新空值

如何解决当我们使用加法赋值 (+=) 时更新空值

declare @temp table
(
    Id int,Qty int 
)

insert into @temp values(1,null)
update @temp set Qty+=2

select * from @temp

我正在尝试更新 Qty 列,但认情况下 Qty 列为空。因此,因为生产数据库列在我尝试更新时可能为空,所以我得到一个空值,我需要 Qty 为 2。

解决方法

使用 coalesce(或 isnull)处理空情况。

update @temp set Qty = coalesce(Qty,0) + 2;
,

如果要增加值,则该列不应允许 NULL

我建议您将值默认为 0。然后不要显式插入 NULL 值:

declare @temp table (
    Id int,Qty int not null default 0
);

insert into @temp (id) values (1);
update @temp set Qty += 2;

select * from @temp;

您也可以将 insert 表示为:

insert into @temp (id,value) values (1,default);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。