Until 2005 (included) the function used by DBCC PAGE to print a column’s content, converted the column’s value into the string that was finally printed out, without previously checking whether it was a valid value or not.

Beginning with 2008, the validness of the column’s value is checked before converting it into a string to print out. If it is not valid, the literal "INVALID COLUMN VALUE" is returned instead.

The motivation for the change was that with certain data types, when data was corrupted (not valid for such data type), the internal component of SQL Server known as Expression Services (which take care of data type conversion) would raise random asserts while trying to convert to a string type to render it as part of DBCC PAGE’s output.

I’m just clarifying this because recently somebody asked me and I thought it might be also interesting to other people who often use DBCC PAGE command to know about it.

Thanks,
Nacho