您好,欢迎光临青岛用友软件销售公司网站!青岛友鹏源信息科技有限公司

关于我们 产品中心

欢迎来电咨询

18605320425

快速导航

全国服务热线

0532-66730821

客户至上、诚意为先

百科问答

当前位置:首页>>新闻中心>>百科问答

T3软件如何解决系统管理报错不能插入重复键行

2018-02-13 22:34:32 已有157人浏览

【问题现象】

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

【原因分析】

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

【解决方案】

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

方案一:删除表内容

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

方案二:重建系统库

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

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

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

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

(2)右击Setup删除。

方案三:drop表,重建表

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

B.再依次点击表UA_Task-键,右击约束“FK__UA_Task__cTaskId__4E88ABD4”选择删除。

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

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