在安装任何累积的更新或 Project Server 2007 或更高版本中 2008 年十月发布的服务包后,无法正常工作 SharePoint 产品和技术配置向导

文章翻译 文章翻译
文章编号: 971217 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

安装任何累积的更新或 Microsoft Office Project Server 2007 或更高版本中 2008 年十月发布的服务包后,SharePoint 产品和技术配置向导无法正常工作。此外,Upgrade.log 文件中记录以下错误消息:

Microsoft.Office.Project.Server.Upgrade.ReportingDatabaseUpgrader_12_1_153_0.Upgrade() 与 REFERENCE 约束冲突的 DELETE 语句"FK_MSP_TimesheetLine_TaskNameUID"。在数据库中发生冲突"TaskConsistency_ <instance_name> _Reporting",表"dbo.MSP_TimesheetLine",TaskNameUID 列。该语句已终止。 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.Office.Server.Data.SqlSession.ExecuteScript(TextReader textReader, Int32 commandTimeout) at Microsoft.SharePoint.Upgrade.SPDatabaseAction.ExecuteSql(String sql, Int32 commandTimeout) at Microsoft.SharePoint.Upgrade.SPDatabaseAction.ExecuteSql(String sql)at Microsoft.Office.Project.Server.Upgrade.ReportingDatabaseUpgrader_12_1_153_0.Upgrade() at Microsoft.SharePoint.Upgrade.SPActionSequence.Upgrade()
注意默认状态下,该 Upgrade.log 文件位于以下文件夹: %ProgramFiles%\Common Files\Microsoft Shared\Web 服务器 Extensions\Logs\

原因

出现此问题是由于报告数据库中非常特定的条件。在极少数的情况下,报告的数据库中可能存在重复的记录。这些重复的记录可能会导致 SharePoint 产品和技术配置向导失败。

解决方案

在安装任何 Project Server 2007 累积更新或 service pack 在 2008 年十月或更高版本发布之前,使用下面的脚本检查中将报告数据库条件。

备注
  • 一次只能运行此检测脚本。 如果您收到一个正数,然后运行恢复脚本。 不要运行检测脚本第二次因为即使不再是一个问题将再次显示正值。 如果第二次运行检测脚本,并且仍然会得到结果为正的误报,这是设计使然。 检测脚本编写是非常敏感的问题导致故障的任何指示。但是,修补程序脚本被指出在修复导致失败的确切问题。 如果您重新运行检测脚本,则可能有仍然是一些小的详细信息在它的领料,您数据库中,但修复脚本将具有已修复的故障的根。
  • 如果您默认安装的 Project Server 数据库的名称命名 ProjectServer_Reporting。您也可以验证与 Project Server 站点通过 SharePoint 管理中心 Web 站点相关联的报告数据库的名称。

IF
(
      SELECT
            DuplicatesCount = COUNT(*)
      FROM  (
                        -- Returns the TaskUID and the Latest date that are duplicates, along with the number of times they are duplicated
                        SELECT
                              TSTask.TaskUID,
                              TSTask.LatestDate,
                              DuplicatesCount = COUNT(TSTask.TaskNameUID)
                        FROM (
                                          -- This will return a 'copy' of the MSP_TimesheetTask table, but with the TaskUID fixed (by looking at the Assignments table)
                                          SELECT
                                                distinct(MSP_TimesheetTask.TaskNameUID), --Distinct, because when joining with lines we will have one row for each line, and so on
                                                MSP_TimesheetTask.LatestDate,
                                                TaskUID = ISNULL(MSP_EpmAssignment.TaskUID, MSP_TimesheetTask.TaskUID)
                                          FROM dbo.MSP_TimesheetTask
                                          LEFT OUTER JOIN MSP_TimesheetLine
                                                ON MSP_TimesheetLine.TaskNameUID = dbo.MSP_TimesheetTask.TaskNameUID
                                          LEFT OUTER JOIN dbo.MSP_TimesheetProject
                                                ON MSP_TimesheetLine.ProjectNameUID = MSP_TimesheetProject.ProjectNameUID
                                          LEFT OUTER JOIN dbo.MSP_EpmAssignment
                                                ON MSP_EpmAssignment.ProjectUID = MSP_TimesheetProject.ProjectUID AND
                                                      MSP_EpmAssignment.AssignmentUID = MSP_TimesheetLine.AssignmentUID
                                ) AS TSTask
                        GROUP BY TSTask.TaskUID, TSTask.LatestDate --Define groups: all the rows that have the same TaskUID and LatestDate
                        HAVING COUNT(TSTask.TaskNameUID) > 1 --See if we have any groups that have more than one row in them. If there are this means the old upgrade will fail.
                  ) AS Duplicates
) > 0
      PRINT 'A correctable data issue has been detected.  Please run the data correction script before upgrading your installation.'
ELSE
      PRINT 'No data issues were detected.  You can continue with your upgrade.'
如果此脚本会提供结果为正,与 Microsoft 客户支持联系获得帮助解决此问题。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

这是否为您的部署问题仅将一个问题一次。因此,您不必非要运行此脚本,如果满足下列条件之一为真,则:
  • 在 2008 年十月或更高版本中释放任何 Project Server 2007 累积更新是成功部署。
  • 成功地部署 2007 Office 服务器 Service Pack 2。

属性

文章编号: 971217 - 最后修改: 2009年10月30日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Office Project Server 2007
关键字:?
kbmt kbexpertiseinter kbtshoot kbsurveynew kbprb KB971217 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 971217
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com