October 9, 2008 at 4:19 am
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
October 9, 2008 at 4:22 am
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.
October 9, 2008 at 5:16 am
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
October 9, 2008 at 5:24 am
remove entries in sys.syscolpars .......
October 9, 2008 at 5:27 am
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.
October 9, 2008 at 10:28 am
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
October 9, 2008 at 10:54 am
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