K3违反内码唯一键约束

K3有时候需要向数据库中插入数据,但是插入的时候遇到主键冲突的错误,可以用如下方法解决。

 

 

比如新增联系人时,完整错误如下:
? ? 违反了 PRIMARY KEY 约束 'PK_CRM_Contact'。不能在对象 'dbo.CRM_Contact' 中插入重复键。
? ? 语句已终止。

出现此情况的原因一般是做二次开发的时候没有处理处理ICMaxNum表,导致表ICMaxNum中的ID比联系人表的最大ID还小,因此导致ID重复

解决方法:
--找到CRM_Contact的FItemID、ICMaxNum表的FMaxNum
select FMaxNum,* From ICMaxNum where ftablename='CRM_Contact'
select top 1 * from CRM_Contact order by FContactID desc?
--如果CRM_Contact的FItemID比ICMaxNum表的FMaxNum大
--1、则删除IC_MaxNum的记录条件是ftablename in ('CRM_Contact')
--2、需要修改ICMaxNum的FMaxnum值比CRM_Contact的FItemID大1(2449是举例数据)
delete from IC_MaxNum where ftablename in ('CRM_Contact')
update ICMaxNum set FMaxnum=2449 where ftablename='CRM_Contact'
update t_Identity set FNext=2499 where fname='CRM_Contact'

注意事项:1、二次开发做单据导入的时候一定要处理ICMaxNum、t_Identity、IC_MaxNum这三个表
? ?? ?? ? 2、可以调用存储过程GetICMaxNum来获取新的ID

CRM销售合同
select FMaxNum,* From ICMaxNum where ftablename='t_RPContract'
select top 1 * from t_RPContract order by FContractID desc


update ICMaxNum set FMaxnum=1134 where ftablename='t_RPContract'
update t_Identity set FNext=1134 where fname='t_RPContract'

posted @ 2018-11-19 12:06  放放的Blog  阅读(691)  评论(0编辑  收藏  举报