找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 14944|回复: 20

[已解决] 违反了PRIMARY KEY

  [复制链接]
发表于 2011-1-11 00:41:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
U870年结成功后在进行收款单据录入时保存出错
显示:违反了PRIMARY KEY 约束'aaaaaAp_closeBill_PK'。不能在对象'Ap_CloseBill'中插入重复键。
请问现在要怎么处理呢?

                               
登录/注册后可看大图

                               
登录/注册后可看大图
下载 (16.57 KB)
昨天 10:37



PS:原先发的贴沉了,不得已才再发一贴!望高手帮忙!!
发表于 2011-1-11 00:46:44 | 显示全部楼层
打开数据库检查收款单这张表在今年的这个数据中表结构同以前的正常数据库表的差异,然后修改过来就可以了。
 楼主| 发表于 2011-1-11 03:09:25 | 显示全部楼层
打开数据库检查收款单这张表在今年的这个数据中表结构同以前的正常数据库表的差异,然后修改过来就可以了。
caimeng 发表于 2011-1-11 00:46



    先谢谢大哥!请问具体怎么操作呢?不懂数据库!!
    请指教!!
发表于 2011-1-17 16:05:48 | 显示全部楼层
给了方法,不会操作,只有掏银子了
发表于 2011-1-18 16:48:03 | 显示全部楼层
单据编号重复,你用这句:
select * from Ap_CloseBill where cVouchID='当前新增的单据编号'
看下库里面是不是已经有这个单了?如果有你查下原因,是删掉还是手动修改单据编号视情况而定了.
上面那个语句是在'查询分析'里面执行的.2005则是在'SQL Server management Studio'执行查询的.
 楼主| 发表于 2011-1-20 23:17:15 | 显示全部楼层
单据编号重复,你用这句:
select * from Ap_CloseBill where cVouchID='当前新增的单据编号'
看下库里面是 ...
xingxingd32 发表于 2011-1-18 16:48



    谢谢指点!回去公司看看!!
 楼主| 发表于 2011-1-20 23:28:04 | 显示全部楼层
回复 6# xingxingd32


    大哥!用了你的方法去查,看不到我的单!
    我新增单号是2691, 查单只能查到2678,2679之后的都是空的!~我现在要怎么修正呢?
发表于 2011-1-21 09:58:04 | 显示全部楼层
本帖最后由 xingxingd32 于 2011-1-21 10:32 编辑
回复  xingxingd32


    大哥!用了你的方法去查,看不到我的单!
    我新增单号是2691, 查单只能查到2 ...
a78877563 发表于 2011-1-20 23:28


你找一个最大单据号修复工具,修复一下.我这没有,问下论坛里谁有.

或者你用这个语句试下:
Use UFDATA_002_2010  --这里要改为你的数套数据库名.
update ufsystem..ua_identity Set iFatherId=(Select Max(iid) As ID From UFDATA_002_2010..Ap_CloseBill),
iChildId=(Select Max(id) As AutoID From UFDATA_002_2010..Ap_CloseBills)
Where   cAcc_Id='002' And   cVouchType='sk'  --cAcc_Id='你的账套号'
--说明:本例句是以2010年002账套测试的,将账套数据库换成你的账套数据库名称,只要是'UFDATA_002_2010'都要更换,cAcc_Id='002',换成你的账套号.
切记:执行操作前要先备份账套!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

点评

万分感谢了,看了你的方案,问题解决了,谢谢……  详情 回复 发表于 2011-10-11 12:07
 楼主| 发表于 2011-1-21 20:15:35 | 显示全部楼层
回复 9# xingxingd32


    大哥用了你这个语句还是一样啊!~~
发表于 2011-1-22 22:00:33 | 显示全部楼层
删除重复的键值。。。
发表于 2011-1-23 10:06:40 | 显示全部楼层
本帖最后由 xingxingd32 于 2011-1-23 10:11 编辑
回复  xingxingd32


    大哥!用了你的方法去查,看不到我的单!
    我新增单号是2691, 查单只能查到2 ...
a78877563 发表于 2011-1-20 23:28


单据编号是自动流水号吗?那2680-2690这段数据那去了?
你备份一下账套,用下面语句删除2680-2690这段.

delete from Ap_CloseBill where cvouchID='2680'

--从2680删到2690,看有没有受影响的行
发表于 2011-1-23 23:28:47 | 显示全部楼层
打开数据库检查收款单这张表在今年的这个数据中表结构同以前的正常数据库表的差异,然后修改过来就可以了。
 楼主| 发表于 2011-1-25 11:18:38 | 显示全部楼层
回复 12# xingxingd32


    用了更新语句后单据编号是自动流水号顺着可以保存了,就是中间的单号都找不到,不知对以后的数据有没有影响!!
发表于 2011-1-26 12:52:56 | 显示全部楼层
呵呵,学习了,还要不断学习才行啊
发表于 2011-2-14 09:37:54 | 显示全部楼层
回复  xingxingd32


    用了更新语句后单据编号是自动流水号顺着可以保存了,就是中间的单号都找不到, ...
a78877563 发表于 2011-1-25 11:18

没什么影响!
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-4-29 05:48 , Processed in 0.065076 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表