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


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
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:

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
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.