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

违反了 UNIQUE KEY 约束 'UNQ_CusID_DetachPolicyID'不能在对象 'dbo.CustomerAccount' 中插入重复键 语句已终止 警告: 聚合或其

违反了 UNIQUE KEY 约束 'UNQ_CusID_DetachPolicyID'。不能在对象'dbo.CustomerAccount' 中插入重复键。 语句已终止。 警告: 聚合或其他 SET 操作消除了 Null 值。


我使用存储过程时,在往数据库添加值时,没有数据为null的校验(可能有=null的校验,但是null不能用=)。并且数据库中已存在原先字段为null的值,再插入数据为null的值,就会出现错误


原来的sql语句:

if not exists(select * from CustomerAccount where PolicyNo=@PolicyNo and DetachPolicyID=@DetachPolicyID and CustomerID=@cusId)


因为@cusId为空,校验的时候,=号是不能校验出null值的。


修改后的sql语句:

if not exists(select * from CustomerAccount where PolicyNo=@PolicyNo and DetachPolicyID=@DetachPolicyID and ((CustomerID=@cusId and ISNULL(@cusId,'')!='') or isnull(@cusId,'')=''))

原文地址:https://www.jb51.cc/javaschema/285193.html

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

相关推荐