錯誤: # 50003826 (SQL Hotfix)

Microsoft 會為一個可下載的檔案散佈 Microsoft SQL Server 2008年的修正程式。 的修正程式是累積的因為每個新版本包含的所有 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。

徵狀

在 SQL Server 2008 中,您可以執行將資料插入暫存資料表的查詢。 Insert 陳述式包含參考相同的暫存資料表的子查詢。 當您執行查詢時,您可能會收到類似下列的錯誤訊息:

狀態 3,擷取資料庫 2 中的邏輯頁 (1:225) 的行 1Attempt,層級 21 605 訊息失敗。 它屬於不到 504403158513025024 的配置單位 281474980315136。

如果您再次執行查詢,您會收到類似下列的錯誤訊息:

訊息 824,層級 24,狀態 2,行 1

SQL Server 偵測到的邏輯一致性基礎 I/O 錯誤: 不正確的總和檢查碼 (預期: 0x50758180; 實際: 0x15658bfc)。 它時發生讀取網頁 (1:336) 的位移 0x000000002a0000 檔案中的資料庫識別碼 」 為 2 中 ' C:\Program 必要 SQL Server\MSSQL10。SQL2008\MSSQL\DATA\tempdb.mdf'。 在 SQL Server 錯誤記錄檔或系統事件日誌中的其他訊息可能會提供更多詳細資料。 這是嚴重的錯誤狀況,還威脅著資料庫完整性,必須立即予以更正。 完成完整的資料庫一致性檢查 (DBCC CHECKDB)。 這項錯誤可能被因許多因素;如需詳細資訊,請參閱 SQL Server 線上叢書 》 文件。

在某些情況下,您可能也會收到類似下列的錯誤訊息:

訊息 601、 層級 12、 狀態 3、 程序 procedure 名稱和行的行號無法繼續使用 NOLOCK 掃描,因為資料移動。

一種可能的查詢建構,可能會產生這些錯誤如下所示:

insert #table1select s.col1, s.col2from #table2 s inner loop join #table1 t on s.col3 = t.col3 

解決方案

這個問題的修正程式首次發表累積的更新 3] 中。如需有關如何取得此累積更新套件,SQL Server 2008 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

960484 SQL Server 2008年的累積更新套件 3注意: 因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。 我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

956909 SQL Server 2008年建置 SQL Server 2008年發行之後所發行的安裝此累積更新套件之後,您必須啟用追蹤旗標 4135。若要這麼做,您可以新增-T4135啟動參數。或者,您可以使用特定的工作階段的dbcc traceon(4135)陳述式。

因應措施

要解決這個問題,請加入資料行具有叢集的主索引鍵和暫存資料表的 identity 屬性。 比方說,執行下列的陳述式,來變更暫存資料表:

ALTER TABLE #TempTableADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

其他相關資訊

雖然您遇到 824 或 605 的錯誤訊息時,資料庫不會損毀。 此外,這些錯誤訊息會參考網頁從 tempdb 資料庫。如需有關變更哪些檔案,及要套用累積更新套件,其中包含這個微軟知識庫文件所述的 hotfix 的任何必要條件的相關資訊,請按一下下面的文件編號,檢視Microsoft 知識庫 」 中的文文件:

960484 SQL Server 2008年的累積更新套件 3

SQL Server 2008 R2 BPA 資訊

SQL Server 2008 R2 最佳練習分析器 (SQL Server 2008 R2 BPA)] 提供偵測的情況下,您並沒有累積的更新或啟用來解決這個問題的追蹤旗標的規則。 SQL Server 2008 R2 BPA 支援 SQL Server 2008年和 SQL Server 2008 R2。 如果您執行 BPA 工具,並會遇到 「 資料庫引擎-tempdb 錯誤修正或追蹤遺漏的旗標 」 警告,您必須檢查 SQL Server 和追蹤旗標設定為啟用此修正程式的版本。

參考

規則軟體

規則標題

規則識別項

SQL Server 2008 R2 BPA 規則

tempdb 錯誤修正或追蹤遺漏的旗標

RID3808

注意: 您可以啟用追蹤旗標 4135 或追蹤旗標來啟用此修正程式 4199。 追蹤旗標 4135 已採用 SQL Server 2008 累積更新套件 3。 追蹤旗標 4135 也會出現在 SQL Server 2008 Service Pack 1、 SQL Server 2008 Service Pack 2,以及 SQL Server 2008 R2 的。 追蹤旗標 4199 以後開始引進 SQL Server 2008年的累積更新套件 7、 累積更新套件的 SQL Server 2008 Service Pack 1、 7 和 SQL Server 2008 R2 的累積更新套件 1。 如需有關追蹤旗標 4199 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

974006 追蹤旗標 4199 加入先前進行中的多個查詢最佳化器變更,在 [多個追蹤旗標] 下的控制項 因為這個問題的修正程式牽涉到特定的 hotfix 組建和追蹤旗標來啟用此修正程式的組合,我們會包括下表顯示不同的案例與建議的動作,您必須採取各種針對每個案例。 如需有關最新的 SQL Server 組建的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

957826 何處可以找到最新的 SQL Server 有關的資訊建置

參考

如需可用的 SQL Server 2008年發行後的組建的清單的相關資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

956909 SQL Server 2008年建置 SQL Server 2008年發行之後所發行的如需 SQL Server 的累加式的服務模型的相關資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

935897 累加式的服務模型位於 SQL Server 小組製作報告的問題的 hotfix如需有關 SQL Server 更新的命名結構描述的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

822499新命名的結構描述為 Microsoft SQL Server 軟體更新套件的如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

824684 描述 Microsoft 軟體更新所使用的標準術語說明

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×