在您安裝任何累積的更新或在 2008 年十月或更新版本中已發行的 Project Server 2007 的 Service Pack 「 SharePoint 產品與技術組態精靈 」 就會失敗

文章翻譯 文章翻譯
文章編號: 971217 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

之後您安裝任何累積的更新或 Service Pack Microsoft Office Project Server 2007 或更新版本中 2008 年十月發行、 SharePoint 產品與技術組態精靈失敗。此外,Upgrade.log 檔案中記錄下列錯誤訊息:

「 Microsoft.Office.project.server.upgrade.ReportingDatabaseUpgrader_12_1_153_0.upgrade() 」 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 累積更新或在 2008 年十月或更新版本發行的 Service Pack 前,使用下列指令碼中報告的資料庫條件檢查。

備忘稿
  • 只執行一次此偵測指令碼。 如果您收到正數,然後執行 [修復指令碼。 請勿執行偵測指令碼第二次因為它會顯示一個正數再次即使不再有問題。 第二次執行偵測指令碼仍然得到正的結果如果的假象,再這是經過設計規劃。 偵測指令碼已寫入會對任何指示會造成失敗的問題非常敏感。不過,此修正程式指令碼被 pinpointed 在修正確實會造成失敗的問題。 如果您請重新執行偵測指令碼很可能它挑選您資料庫中仍有一些小的詳細資料,但修正指令碼將會有已經固定失敗的根目錄。
  • 如果您的 Project Server 預設安裝資料庫的名稱稱為 ProjectServer_Reporting。您也可以確認報告與您的 Project Server 網站透過 SharePoint 中央系統管理網站相關聯的資料庫的名稱。

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
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本: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