Corrupt DB (NEED HELP)

  • I haven't slept last night because i've been trying to figure out how to fix corrupt database, which is to be release to production this afternoon at 3pm east.

    i get the following error

    Warning: The system catalog was updated directly in database ID 10, most recently at Oct 9 2008 3:46AM.

    Msg 3853, Level 16, State 1, Line 1

    Attribute (parent_object_id=624252677) of row (object_id=640252734) in sys.objects does not have a matching row (object_id=624252677) in sys.objects.

    DBCC execution completed. If DBCC printed error messages, contact your system administrator.

    i have got others but was able to fix em.....this is the only one left. i've been using this link as a guide http://www.sqlskills.com/blogs/paul/2008/06/12/TechEdDemoUsingTheSQL2005DedicatedAdminConnectionToFixMsg8992CorruptSystemTables.aspx

    but did not work out with this last error.

    need help to figure this one out

    thanks

  • to add a lil more info the above parent_object_id turned out to be a primary key ....but can't find the table to which it belongs so i can drop and recreate if necessary.

  • What does the following return?

    select name, type_desc from sys.objects where object_id in (624252677, 640252734)

    What other changes have you made to the system tables?

    Gail Shaw
    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
  • remove entries in sys.syscolpars .......

  • GilaMonster (10/9/2008)


    What does the following return?

    select name, type_desc from sys.objects where object_id in (624252677, 640252734)

    What other changes have you made to the system tables?

    returned this >> PK__fnRR_1087_645351__26297B3EPRIMARY_KEY_CONSTRAINT

    i find that it was a primary key constraint but i didn't see the table on which it was defined.

  • Then you are going to have to delete the entry in sys.objects manually for that pk, and then deal (again manually) with any child records of that (references in sys.indexes or sys.index_columns). Much the same way as Paul's blog shows, but the table you will be deleting from is sys.sysschobjs, and the where clause on the delete will be "WHERE type = 'pk' and id= 624252677"

    What probably happened in the past is that someone deleted a row from sysobjects directly(in SQL 2000) leaving the columns referenced in syscolumns (which became sys.syscolpars) and also leaving the reference to the pk behind. SQL 2000's checkDB wouldn't have picked that up, SQL 2005's does.

    If you get that sorted an have more errors, post them and we'll help you through the rest

    Gail Shaw
    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
  • thanks

    appreciate it

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply