web-dev-qa-db-ja.com

DBCC CHECKDB WITHDATA_PURITYで範囲外エラーが発生する

SQL Server2000データベースをSQLServer 2005に復元してから、DBCC CHECKDB WITH DATA_PURITYを実行すると、次のエラーが発生します。

Msg 2570, Level 16, State 3, Line 2
Page (1:19558), slot 13 in object ID 181575685, index ID 1, partition ID 293374720802816, alloc unit ID 11899744092160 (type "In-row data"). Column "NumberOfShares" value is out of range for data type "numeric".  Update column to a legal value.

NumberOfShares列は、数値(19,6)データ型です。私が以下を実行した場合

select max (NumberOfShares) from AUDIT_Table
select min (NumberOfShares) from AUDIT_Table

私は得る:

22678647.839110
-1845953000.000000

これらの値は数値(19,6)の範囲内にあるため、DBCCチェックが失敗する理由がわかりません。それが失敗する理由を見つけるためのアイデアはありますか? DBCC PAGEを使用する必要がありますか?これをどのようにトラブルシューティングしますか?

ありがとう、マーク。

4
Mark Allison

使用 DBCC PAGE

DBCC TRACE(3604);
DBCC PAGE('dbname', 1, 19558, 3);

スロット13を確認します。

4
Remus Rusanu