更新到 Microsoft Dynamics GP 2010 时,公司数据库的表转换失败。 公司旁边会显示一个红色 X,指示故障。 若要确定哪些表失败,请运行以下脚本:
SELECT b.fileOSName, a.fileNumber, a.PRODID, a.Status, a.errornum, a.errordes, c.CMPANYID, c.INTERID
FROM DYNAMICS.dbo.DU000030 a
JOIN
DYNAMICS.dbo.DU000010 b
ON a.fileNumber = b.fileNumber
AND a.PRODID = b.PRODID
JOIN
DYNAMICS.dbo.SY01500 c
ON a.companyID = c.CMPANYID
WHERE (a.Status <> 0 or a.errornum <> 0) and a.Status <>15
在 errordesc 列中收到以下 错误消息:
[Microsoft][SQL Server Native Client 10.0][SQL Server]违反 PRIMARY KEY 约束"PKUPRXXXXX"。 无法在对象"dbo"中插入重复键。UPRXXXXXX'。
当以下一个或多个表无法更新时,会收到以下错误消息
:UPR10203
UPR10204
UPR10205
UPR10206
UPR10207
UPR10209 UPR10213
UPR10214
原因
注意 在按照本文中的说明操作之前,请确保有一个完整的数据库备份副本,在出现问题时可以还原该副本。
主键随 Microsoft Dynamics GP 2010 而更改,表中的记录违反了新密钥。 在工资单检查运行后,工资单工作表中的记录不应存在。 若要解决此问题,请删除记录。
若要让我们修复此问题,请转到"为我修复"部分。 如果你希望自己解决此问题,请转到"让我自己修复"部分。
症状
若要自动修复此问题,请单击"修复此问题"链接。 在"文件下载"对话框中单击"运行",然后按照该向导中的步骤执行操作。
注意 此向导只能使用英语;但是,自动修复也适用于其他语言版本的 Windows。
注意 如果不在出现问题的计算机上,可以将自动修复保存到闪存驱动器或 CD,然后可以在出现问题的计算机上运行它。
帮我修复此问题
若要自己解决此问题,请执行以下步骤:
-
请勿还原公司数据库。 在更新到 Microsoft Dynamics GP 2010 期间发生故障时,可以解决此问题。
-
启动SQL Server Management Studio。 为此,请使用以下方法之一,具体取决于你使用的程序。
方法 1:对于 SQL Server 2005,如果使用 SQL Server 2005,请SQL Server Management Studio。 为此,请单击"开始",指向"所有程序",指向"Microsoft SQL Server 2005",然后单击"SQL Server Management Studio"。
方法 2:对于 SQL Server 2008,如果使用 SQL Server 2008,请SQL Server Management Studio。 为此,请单击"开始",指向"所有程序",指向"Microsoft SQL Server 2008",然后单击"SQL Server Management Studio"。
-
针对发生故障的公司数据库运行以下脚本:
Delete UPR10203
Delete UPR10204
Delete UPR10205
Delete UPR10206
Delete UPR10207
Delete UPR10209
Delete UPR10213
Delete UPR10214 -
运行以下脚本来清除失败的记录:
Delete DYNAMICS..DU000030 where Status = 135 and fileNumber in (424, 425, 426, 427, 428, 429, 385, 386)
-
启动 Microsoft Dynamics GP 2010 实用程序并再次更新公司。