You must start an instance of SQL Server in single-user mode when you use DBCC CHECKDB/CHECKTABLE with REPAIR options

Article translations Article translations
Article ID: 264154 - View products that this article applies to.
This article was previously published under Q264154
Expand all | Collapse all

On This Page

SUMMARY

The correct way to run a DBCC CHECKDB or DBCC CHECKTABLE statement with valid REPAIR options is to start SQL Server normally and then explicitly set the database in single user mode. You can do this from either the Enterprise Manager or the Query Analyzer.

From Enterprise Manager:
  1. Right-click the database name, and then click Properties.
  2. In the Properties dialog box, click Options.
  3. Select the single user option, and then click OK.
From Query Analyzer:
Use master
go
sp_dboption dbname, single, true
				
After the database is in single user mode, you can then run the DBCC CHECKDB or DBCC CHECKTABLE statements with the valid REPAIR options.

If you are using SQL Server 2005

For more information about how to start SQL Server in single-user mode, visit the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/ms188236(en-US,SQL.90).aspx

MORE INFORMATION

If you start SQL Server in single user mode (by using -m) and then you run a DBCC CHECK statement (CHECKDB or CHECKTABLE) with one of the valid REPAIR options, SQL Server generates this error message:
Repair statement not processed. Database needs to be in single user mode.
DBCC execution completed. If DBCC printed error messages, contact your
system administrator.
The preceding error message corresponds to error number 7919.

The following example illustrates the problem:
  1. Start SQL Server from a command prompt by using: sqlservr -c -m

  2. Make a connection to SQL Server by using the Query Analyzer and then run the following code:
    Use pubs
    go
    DBCC CHECKTABLE(Authors, REPAIR_REBUILD )
    go
    					
These steps cause the error listed at the beginning of the "More Information" section to occur.

This behavior is by design. When you start SQL Server in single user mode, you do not explicitly set the status of each database in single user mode. You only do that for the Master database. However, the DBCC CHECK statement checks the status for that specific database on which it is being run and if it is not set to single user the error message occurs.

Properties

Article ID: 264154 - Last Review: February 22, 2007 - Revision: 4.3
APPLIES TO
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Keywords: 
kbinfo KB264154

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com