Any idea why the value -96.00 is out of range for the normalization_data column (defined as numeric(14,2) )?
DBCC CHECKDB with DATA_PURITY flags this row:
Msg 2570, Level 16, State 3, Line 1
Page (1:807256), slot 0 in object ID 379148396, index ID 1, partition ID 72057594093830144, alloc unit ID 72057594099269632 (type "In-row data"). Column "normalization_data" value is out of range for data type "numeric". Update column to a legal value.
Page info for slot 0:
PAGE: (1:807256)
BUFFER:
BUF @0x0B826044
bpage = 0x607FC000 bhash = 0x00000000 bpageno = (1:807256)
bdbid = 10 breferences = 0 bUse1 = 45874
bstat = 0x3c00009 blog = 0x9ca22159 bnext = 0x00000000
PAGE HEADER:
Page @0x607FC000
m_pageId = (1:807256) m_headerVersion = 1 m_type = 1
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x0
m_objId (AllocUnitId.idObj) = 936 m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72057594099269632
Metadata: PartitionId = 72057594093830144 Metadata: IndexId = 1
Metadata: ObjectId = 379148396 m_prevPage = (0:0) m_nextPage = (1:807257)
pminlen = 16 m_slotCnt = 129 m_freeCnt = 768
m_freeData = 7166 m_reservedCnt = 0 m_lsn = (19457:12767:78)
m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0
m_tornBits = 323122309
Allocation Status
GAM (1:511232) = ALLOCATED SGAM (1:511233) = NOT ALLOCATED
PFS (1:800712) = 0x40 ALLOCATED 0_PCT_FULL DIFF (1:511238) = NOT CHANGED
ML (1:511239) = NOT MIN_LOGGED
Slot 0 Offset 0x60 Length 54
Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS
Memory Dump @0x69A5C060
00000000: 30001000 53595302 80250000 00000000 †0...SYS..%......
00000010: 0500e003 0024002b 00360041 43482046 †.....$.+.6.ACH F
00000020: 4f4f4453 30342d32 30303534 36303030 †OODS04-200546000
00000030: 20303233 3130†††††††††††††††††††††††† 02310
Slot 0 Column 0 Offset 0x4 Length 3
company_id = SYS
Slot 0 Column 1 Offset 0x1b Length 9
normalization_set_id = ACH FOODS
Slot 0 Column 2 Offset 0x24 Length 7
time_period_id = 04-2005
Slot 0 Column 3 Offset 0x2b Length 11
code = 46000 02310
Slot 0 Column 4 Offset 0x7 Length 9
normalization_data = -96.00
1 Answer 1
I suspect that =96.00 is not the actual value in the row. If you look at the memory dump section above, the memory dump stops at the previous column.
Can you post the output from the following (replacing Database Name with the name of the database)?
DBCC Traceon(3604);
DBCC Page ('Database Name', 1, 807256, 3);
answered Oct 10, 2011 at 2:34
-
The above was the output of those commands. I removed the additional slots as it was quite lengthy. Should I post the entire page dump? For the record, I can select that row using WHERE normalization_data = -96.00.belvdr– belvdr2011年10月10日 11:52:39 +00:00Commented Oct 10, 2011 at 11:52
-
Yes, I'd like to see the full output if you can share it. Otherwise, try updating the value and rerunning DBCC to see if it is successful.Robert L Davis– Robert L Davis2011年10月10日 16:11:01 +00:00Commented Oct 10, 2011 at 16:11
-
Okay, well updating the row with the same value did the trick. So I guess I have 544 updates to do. Thanks!belvdr– belvdr2011年10月10日 16:39:21 +00:00Commented Oct 10, 2011 at 16:39
lang-sql