文章編號: 923247 - 上次校閱: 2012年3月22日 - 版次: 1.0 疑難排解在 SQL Server 2005 及更新版本的 DBCC 錯誤 2570
在此頁中簡介本文將告訴您 SQL Server 的錯誤為 2570,造成的原因為何錯誤,以及如何解決問題。 其他相關資訊DATA_PURITY 檢查在 SQL Server 2005,新的選項: DATA_PURITY,已經新增到不一致和在於命令。當您執行 DBCC CHECKDB指令會執行的在於使用指令啟用此選項,或在資料表的所有資料列的每一個資料行值 」 資料單純性"驗證或在資料庫中的資料表。為了確保不會執行這些新的檢查儲存於資料行的值是否有效 (也就是,這些值不會跨範圍與該資料行的資料型別相關聯的網域)。[執行驗證的本質,取決於資料行的資料型別。[遵循非詳細列出提供一些範例:摺疊此表格
資料的單純性驗證檢查都被停用自動替所有的資料庫。取決於幾個啟用檢查因素:
徵狀無效或超出範圍的資料可能已儲存在 SQL伺服器資料庫中較早的版本,原因如下:
這些徵狀的一些您可能會注意到不正確的資料是否存在受限於包括 (但並不會限制至):
DATA_PURITY 問題報告當您執行 DBCC CHECKDB 在於使用或指令啟用 [DATA_PURITY] 選項 (或執行資料的單純性檢查[自動]),而且由 DBCC 檢查資料表中都會有無效的資料指令,DBCC 輸出包含額外的訊息,指出資料有問題。有些範例錯誤訊息,指出資料單純性問題如下所示:DBCC 結果"account_history"。 訊息 2570年,層次 16,狀態 1,行 1 一頁 (1:1073),物件 ID 1977058079,索引識別碼為 0,磁碟分割編號 129568478265344 中插槽 33配置單位識別碼 129568478265344 (型別 「 同資料列資料 」)。"Account_name_japan"的資料行值超出範圍的資料型別"nvarchar"。更新資料行為合法值。 訊息 2570年,層次 16,狀態 1,行 1 網頁 (1:1156),物件中的介面槽 120識別碼 1977058079、 索引識別碼為 0,磁碟分割識別碼 129568478265344,配置單位識別碼129568478265344 (輸入"同資料列的資料 」)。"Account_name_japan"的資料行值會出資料型別"nvarchar"的範圍。更新資料行為合法值。 有是 153137 物件"account_history"的 1080年頁面中的資料列。 找到 CHECKDB0 的配置錯誤和"account_history"資料表中的 338 一致性錯誤(物件 ID 1977058079)。 CHECKDB 找出 0 配置錯誤和 338'BadUnicodeData' 的資料庫一致性錯誤。 DBCC 執行完畢。如果 DBCC 印出錯誤訊息,請連絡您的系統管理員。 'Table1' DBCC 結果。 訊息 2570,層級16,狀態 3,第 1 行 網頁 (1:154)、 介面槽物件 ID 2073058421 中的 0,索引識別碼0,磁碟分割識別碼 72057594038321152,配置單位識別碼 72057594042318848 (型別「 同資料列資料 」)。"欄 2 中"的資料行值超出範圍,如 「 真正 」 的資料型別。更新資料行為合法值。 物件的雙頁中有 4 個資料列"table1"。 CHECKDB 找出 0 配置錯誤和 1 的一致性的錯誤資料表 'table1' (物件 ID 2073058421)。 CHECKDB 找到 0 配置錯誤以及在資料庫 'realdata' 1 一致性錯誤。DBCC 執行完畢。如果DBCC 印出錯誤訊息,請連絡您的系統管理員。 DBCC 'table2' 的結果。 訊息 2570,層級16,狀態 3,第 1 行 網頁 (1:155)、 介面槽物件 ID 2105058535 中的 0,索引識別碼0,磁碟分割識別碼 72057594038452224,配置單位識別碼 72057594042449920 (型別「 同資料列資料 」)。"欄 2 中"的資料行值超出範圍,如 「 十進位 」 的資料型別。更新資料行為合法值。 1 物件的頁面中有 4 個資料列"table2"。 CHECKDB 找出 0 配置錯誤和 1 的一致性的錯誤資料表 'table2' (物件 ID 2105058535)。 CHECKDB 找到 0 配置錯誤以及在資料庫 'realdata' 1 一致性錯誤。DBCC 執行完畢。如果DBCC 印出錯誤訊息,請連絡您的系統管理員。 '表單' DBCC 結果。 訊息 2570,層級16,狀態 3,第 1 行 網頁 (1:157)、 介面槽物件 ID 2121058592 中的 0,索引識別碼0,磁碟分割識別碼 72057594038517760,配置單位識別碼 72057594042515456 (型別「 同資料列資料 」)。"欄 2 中"的資料行值超出範圍 」 的日期時間 」 的資料型別。更新資料行為合法值。 1 物件的頁面中有 3 的資料列「 表單 」。 CHECKDB 找出 0 配置錯誤和 1 的一致性的錯誤資料表 '表單' (物件 ID 2121058592)。 CHECKDB 找到 0 配置錯誤以及在資料庫 'realdata' 1 一致性錯誤。DBCC 執行完畢。如果DBCC 印出錯誤訊息,請連絡您的系統管理員。 修復資料的單純性問題使用任何的 DBCC 修復無法修復的 2570年 」 錯誤選項。這是因為它是不可能判斷何種值的 DBCC應該用來取代無效的資料行的值。因此,資料行的值必須與以手動方式更新。若要執行手動更新,您必須尋找資料列可在發生問題。有兩種方式可以完成這項作業。
一旦您找到正確的資料列,必須建立新的值會用來決定取代現有的資料無效。這個決定也設成可非常仔細地根據應用程式運作的值的範圍,以及什麼合理邏輯該資料列的資料。您必須選擇如下:
尋找與使用 T SQL 查詢的值不正確的資料列您必須一直執行到尋找資料列的查詢類型無效的值取決於 [報告問題的資料行的資料型別。如果您看一下 2570年錯誤訊息,您會注意到二個重要的項目將協助您進行這樣的資訊。在下列範例中,資料行"account_name_japan"的值超出範圍的資料型別"nvarchar"。沒問題很容易地識別有問題,以及資料型別資料行所包含的資料行。因此,我們一次您知道的資料型別也牽涉到的資料行,您可以制定查詢來尋找包含無效的值的資料列資料行中,選取所需來識別該資料列 (如在述詞的資料行WHERE 子句) 的任何進一步更新或刪除。Unicode 資料型別: 浮點數資料型別: 實際的資料型別: 日期時間資料型別: 您必須執行兩個不同的查詢,找出包含無效的值,日期時間資料行的資料列。 尋找與使用的實體位置的值不正確的資料列:您可以使用這個方法,如果您找不到的資料列使用上文所述的 T SQL 方法感興趣。在 2570年錯誤訊息中,列印包含不正確的值之資料列的實體位置。針對範例中,看看下列訊息:一頁 (1:157),物件 ID 2121058592,索引識別碼為 0,磁碟分割編號 72057594038517760 中插槽 0配置單位識別碼 72057594042515456 (型別 「 同資料列資料 」)。"欄 2 中"的資料行的值是超出範圍 」 的日期時間 」 的資料型別。若要修正的更新資料行值。
警告 我們建議您使用第一種方法 (也就是使用 T SQL查詢,以尋找所需的資訊)。使用 DBCC PAGE 命令列為最後的解決方法。採用具有特別小心,但是您在生產環境中使用這個命令環境。最好也能還原在測試上的實際執行資料庫伺服器上,然後以取得使用 DBCC PAGE,所有必要的資訊,然後執行在實際執行伺服器上的更新。如同以往一樣,請確定將備份保存在準備好如果有任何差錯,而且您需要還原成先前的副本資料庫。 ?考如需有關的 DBCC CHECKDB 陳述式的詳細資訊,請參閱下列的 Microsoft 開發人員 」 DBCC CHECKDB (考慮改用-SQL) 」 主題網路 (MSDN) 網站: http://msdn2.microsoft.com/en-us/library/ms176064.aspx
(http://msdn2.microsoft.com/en-us/library/ms176064.aspx)
如需有關已知問題在 SQL Server 2000 中,按一下下面的文件編號,檢視「 Microsoft 知識庫文件: 900335?
(http://support.microsoft.com/kb/900335/
)
修正: SQL Server 2000年自動資料庫復原作業可能會失敗,如果索引會包含 FLOAT 資料型別或 REAL 資料型別,而此資料型別則包含與 NaN 值 如需有關 RPC 事件的詳細資訊,請參閱在下列 MSDN 網站上的"呼叫預存程序 (OLE DB) 」 主題:http://msdn2.microsoft.com/en-us/library/aa198358 (SQL.80).aspx
(http://msdn2.microsoft.com/en-us/library/aa198358(SQL.80).aspx)
如需不同資料型別的詳細資訊,請參閱在下列 MSDN 網站上的"呼叫預存程序 (OLE DB) 」 主題:http://msdn2.microsoft.com/en-us/library/ms187752.aspx
(http://msdn2.microsoft.com/en-us/library/ms187752.aspx)
如需有關浮動的點值慣例的詳細資訊,請造訪下列 Intel 網站:http://www.intel.com/design/pentiumii/manuals/243191.htm
(http://www.intel.com/design/pentiumii/manuals/243191.htm)
Microsoft提供可協助您尋找技術支援的第三方連絡資訊。這份連絡資訊可能會變更恕不另行通知。Microsoft 則否保證此第三方連絡資訊的正確性。 這篇文章中的資訊適用於:
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:923247?
(http://support.microsoft.com/kb/923247/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


回此頁最上方
