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

前端之家收集整理的这篇文章主要介绍了违反了 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,'')=''))

猜你在找的设计模式相关文章