用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程

[全站通告] 想快速节省您的时间并可接受付费的朋友,可扫右边二维码加博主微信-非诚勿扰!

【问题现象】

打开系统管理提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行。见下图:

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图1)

【原因分析】

打开系统管理报错,考虑是由于系统库异常造成的,提示中有出现表UA_Tasklog,所以判断是该表异常导致报错。UA_Tasklog是站点网络控制表,与其相关的还有功能操作网络控制表UA_Task。

【解决方案】

以下有四种解决方案可参考:

方案一:删除表内容

由于是站点网络控制表UA_Tasklog异常,一般该表的内容是可以清空的,操作前请做好数据备份,如果没有做正常备份,请做好物理数据备份(备份T3安装路径下的admin文件夹,路径:安装的本地磁盘\Ufsmart\admin),对系统库执行语句“delete from ua_tasklog”

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图2)

 

方案二:重建系统库

因为 UA_TASK 和 UA_TASKLOG都在系统库中,重建系统库,可以重建表。所以做好了数据备份的情况下,可以考虑重建系统库,重建系统库后重新恢复账套。

重建系统库,需要删除注册表项,操作步骤如下:

(1)【开始】-【运行】-输入“regedit”- 依次找到

[HKEY_LOCAL_MACHINE\SOFTWARE\UFSoft\UF2000\2.0\Setup]

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图3)

(2)右击Setup删除。

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图4)

方案三:drop表,重建表

由于是站点网络控制表UA_Tasklog异常,,可以考虑直接删除表UA_Tasklog,然后使用创建表脚本重建。请参照以下步骤:

(1)使用Drop命令删除表UA_Tasklog,提示存在关联关系的表不能删除。

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图5)

(2)所以需要先删除ua_task ,再删除ua_tasklog

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图6)

(3)重建表,需要使用创建表脚本。在T3软件安装路径下有创建系统库的模板文件ufsystem.bak

,可以使用该文件(ufsystem.bak)强制还原到某个数据库中,然后查询、复制创建表的脚本。具体操作步骤如下:

A.登入数据库企业管理器

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图7)

B.右击【数据库】点击【新建】,新建数据库123。

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图8)

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图9)

C.右击【数据库】,选择【还原数据库】,在【常规】页,目标数据库选择123,点击【源设备】,选择系统库模板文件ufsystem.bak

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图10)

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图11)

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图12) 用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图13) 用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图14)

D. 在【选项】页选择【覆盖现有数据库】,将系统库模板文件还原到数据库123中

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图15)

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图16)

E.还原完成后,进入数据库“123”中,找到表UA_task,右击表UA_task,选择【编写脚本为】-【CREATE到】-【新查询编辑器窗口】,查看创建表表UA_task的脚本,并全选复制

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图17)

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图18)

F.选择系统库UFSystem,执行创建表UA_task的脚本

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图19)

G.找到表UA_tasklog,右击表UA_tasklog,选择【编写脚本为】-【CREATE到】-【新查询编辑器窗口】,查看创建表UA_tasklog的脚本,并全选复制

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图20)

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图21)

H.选择系统库UFSystem,执行表UA_tasklog的创建脚本

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图22)

方案四:删除约束,重建表

无法删除表’ua_tasklog’,是因为该表正由一个FOREIGN KEY 约束引用,所以可以删除约束,然后重建表。请参照以下步骤操作:

A.先执行以下语句查询约束

select fk.name,fk.object_id,OBJECT_NAME(fk.parent_object_id) as referenceTableName

from sys.foreign_keys as fk

join sys.objects as o on fk.referenced_object_id=o.object_id

where o.name=’ua_tasklog’

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图23)

B.再依次点击表UA_Task-键,右击约束“FK__UA_Task__cTaskId__4E88ABD4

”选择删除。

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图24)

C.删除约束后,可删除表UA_Tasklog

用友T3系统管理报错不能插入重复键行,提示:运行时错误‘-2147217873(80040e2f)’ 不能在具有唯一索引‘csub_id’的对象‘dbo.UA_Tasklog’中插入重复键行,图文详细处理流程(图25)

D.删除表UA_Tasklog后,可参照本文当中的方案三重建表UA_Tasklog,但是重建表之后不会重写已删除的约束FK__UA_Task__cTaskId__4E88ABD4,一般不影响软件使用。

发表回复

加入本站VIP会员,海量资源免费查看下载

目前为止共有136位优秀的VIP会员加入! 立即加入!