?
Solved

SQL Server 2008: Could not find row in sysindexes for database ID 7, object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes.

Posted on 2011-02-13
18
Medium Priority
?
1,652 Views
Last Modified: 2012-06-27
I am trying to attach a database but keep on getting the following error:
SQL Server 2008: Could not find row in sysindexes for database ID 7, object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes.

I did run the DBCC CHECKTABLE on sysindexes and it returned with 104 rows with no errors.  I also ran DBCC CHECKDB --> but no errors.  

I am not migrating the database or upgrading from the previous verison of SQL server.  

Thanks
0
Comment
Question by:BSS2011
  • 9
  • 7
17 Comments
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 34885703
please check the compatibility value of the database, is it 100 or is it lower?
0
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34885710
Try rebuilding the Clustered index on that particular table which might help out some times..
0
 

Author Comment

by:BSS2011
ID: 34885755
I ran the exec_sphelp and got 6 rows with dbnames, i see all my db's but not the one i need to attach.  Rebuilding index did not help.
0
Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34885827
>> I ran the exec_sphelp and got 6 rows with dbnames,

Do you mean exec sp_help ..
If so, then it would return all objects present in your current database and if you are not connected to your database, then run this

USE ur_db_name
GO
exec sp_help

>> Rebuilding index did not help.

What error or response did you got while rebuilding your clustered index.
Ideally Clustered index would be your Primary key but it some cases it varies.
So kindly check it once and rebuild it accordingly.
0
 

Author Comment

by:BSS2011
ID: 34885848
Ran this:
USE ur_db_name
GO
exec sp_help

Could not locate entry in sysdatabases for my database.  

When rebuilding the index i must use the ALTER INDEX right?
0
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34885873
>> Could not locate entry in sysdatabases for my database.  

Missed mentioning that...
Replace ur_db_name with your database name and execute the above script.

>> When rebuilding the index i must use the ALTER INDEX right?

Yes, You need to use ALTER INDEX with REBUILD operation
or
Drop and recreate your index..
0
 

Author Comment

by:BSS2011
ID: 34885924
I did use my db name with sp_help.

If the db entry is not in sysindex table rebuilding index will not work.  Am I reindexing sysindex?
0
 

Author Comment

by:BSS2011
ID: 34885998
Tried re-indexing but could not locate entry in sysdatabases.
0
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34886162
>> I also ran DBCC CHECKDB --> but no errors.  

Can you try running this:

DBCC CHECKDB ur_db_name WITH ALL_ERRORMSGS;
0
 

Author Comment

by:BSS2011
ID: 34888017
Same error:  could not locate entry in sysdatabases.
0
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34888115
Are you sure your database is available in the instance you are testing with..
And is your database accessible.

Kindly run this query and paste its output here:

SELECT * FROM sys.databases
WHERE name LIKE '%ur_db_name%'

PS: Do replace ur_db_name with your db name.
0
 

Author Comment

by:BSS2011
ID: 34888940
I ran the query and got no results.  
0
 

Author Comment

by:BSS2011
ID: 34889458
When i ran the following this time:

USE ur_db_name
GO
exec sp_help

I got the error the administrator is not able to access the db.  Different error this time and I can see the db now in the object explorer but cannot access it.
0
 

Author Comment

by:BSS2011
ID: 34889535
I did a query on sys.databases again but returned with no rows.
0
 
LVL 57

Accepted Solution

by:
Raja Jegan R earned 2000 total points
ID: 34893569
>> I got the error the administrator is not able to access the db.

Then it means that your database is not accessible...
If you have a database backup available, then its recommended to restore your backup and have this error fixed out.
0
 

Author Comment

by:BSS2011
ID: 34928542
Ended up restoring the backup.  
0
 
LVL 57

Expert Comment

by:Raja Jegan R
ID: 34939845
>> Ended up restoring the backup

Isn't the same which I have suggested you earlier in my comment http:#a34893569.
It would have been fair to accept my comment as solution..
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article I will describe the Backup & Restore method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Loops Section Overview
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…

571 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question