修正: 不正確的結果或當您執行選取或 DML 陳述式的條件約束違規使用 row_number 函式和平行執行計劃中 SQL Server 2008

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

按一下這裡查看此文章的英文版本:2589980

Microsoft 為一個可下載檔案散佈 Microsoft SQL Server 2008年修正程式。修正程式是累積的因為每個新版本包含所有的 hotfix,所有安全性修正程式隨附於先前的 SQL Server 2008年修正版本。
徵狀
請考慮下列案例:
  • 執行平行查詢使用 row_number Microsoft SQL Server 2008年中的函式。
  • 您嘗試使用子查詢中執行查詢 選取 陳述式或資料操作語言 (DML) 陳述式。
在這個案例中,您會遇到下列問題之一:
  • 如果您執行內部查詢,會收到不正確的結果選取 陳述式許多次。
  • 資料表可能包含不正確的資料,如果查詢執行 DML 陳述式內。如果資料表具有限制式,陳述式可能會失敗的條件約束違規。

    例如, 插入 陳述式可能會失敗,如果資料表有主索引鍵,就會發生主索引鍵違規錯誤。


附註 這些問題可能會發生在下列情況之一:
  • 您設定 MAXDOP 大於值的查詢提示選項 2.
  • 您設定 最大平行度 大於值的選項 2 在 [伺服器組態。

解決方案
若要解決這個問題,請取得最新 service pack 的 SQL Server 2008年。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

968382 如何取得最新 service pack 的 SQL Server 2008
其他可行方案
若要解決這個問題,請使用下列方法之一:
  • 如果您已套用的下列更新其中一個,請啟用 4134 追蹤旗標:
    • SQL Server 2008年或 SQL Server 2008年稍後累積更新套件的累積更新套件 6
    • SQL Server 2008 Service Pack 1 (SP1) 的累積更新套件 2 或 SQL Server 2008 SP1 稍後累積更新套件


    如需有關如何啟用追蹤旗標的詳細資訊,請造訪下列 MSDN 網站:
  • 參考 Microsoft 知識庫 」 文件 970198 中的 〈 解決方法 〉 一節。

    如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    970198 修正: 您不正確的結果執行時,收到 SQL Server 2008年中使用 row_number 函式的查詢

警告:本文為自動翻譯

內容

文章識別碼:2589980 - 最後檢閱時間:08/22/2011 23:08:00 - 修訂: 1.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Enterprise Evaluation, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Service Pack 1, Microsoft SQL Server 2008 Service Pack 2, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2589980 KbMtzh
意見反應