Root cause is that back on SQL 2000 someone messed with the system tables (via allow updates being set to 1). On SQL 2000, CheckDB doesn't run checkcatalog so the error goes unnoticed until the upgrade, when things break badly sometimes. It's not that the upgrade is causing the error, it's just finding an error that existed for some time already
This is easy to fix if you find it before the upgrade, it's extremely difficult to fix afterwards. Best thing is to run CheckCatalog on the SQL 2000 DB before upgrading, then fix any errors that appear.
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)SQL In The Wild
: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass