BUG: SQL BOL Incorrectly States That CHECKCATALOG Deletes Object (238745)



The information in this article applies to:

  • Microsoft SQL Server 7.0

This article was previously published under Q238745
BUG #: 56269 (SQLBUG_70)

SYMPTOMS

The topic for Error 2513 in SQL Server Books Online states the following:
   This error occurs when the DBCC CHECKCATALOG statement deletes a database
   object in one system table and this is not expected in another. 
				
The documentation intended to state:
   This error occurs when the DBCC CHECKCATALOG statement detects a database
   object in one system table and this is not expected in another.
				

STATUS

Microsoft has confirmed this to be a problem in SQL Server 7.0.

MORE INFORMATION

DBCC CHECKCATALOG does not modify, insert, or delete rows from the system tables in a database. It verifies that the objects listed in various system tables (like SYSCOLUMNS or SYSCOMMENTS) do not contain objects, or IDs, that do not exist in SYSOBJECTS; in other words, orphan rows.

For example, if a row exists in SYSCOMMENTS with an ID of 5, and there is no ID 5 in SYSOBJECTS, then running DBCC CHECKCATALOG will generate an error 2513 stating:
Table Corrupt: Object ID %ld (object '%.*ls') does not match between '%.*ls' and '%.*ls'.

Modification Type:MajorLast Reviewed:10/16/2002
Keywords:kbBug KB238745