检查指定数据库中的系统表内及系统表间的一致性。
DBCC CHECKCATALOG
( 'database_name'
) [ WITH NO_INFOMSGS ]
'database_name'
是要对其系统表一致性进行检查的数据库。如果未指定,则默认为当前数据库。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。
WITH NO_INFOMSGS
当错误信息少于 200 条时,禁止显示所有的信息性消息和关于所用空间的报告。如果未指定,DBCC CHECKCATALOG 则会显示所有的错误信息。DBCC CHECKCATALOG 消息按对象 ID 排序(从 tempdb 中生成的消息除外)。
DBCC CHECKCATALOG 对 syscolumns 中的每种数据类型在 systypes 中是否都有一个匹配项进行检查,同时还对 sysobjects 中的每个表和视图在 syscolumns 中是否都至少有一列进行检查。
如果没有指定数据库,DBCC CHECKCATALOG 会返回以下结果集(消息):
DBCC results for 'current database'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
如果提供 Northwind 作为数据库名称,DBCC CHECKCATALOG 会返回以下结果集(消息):
DBCC results for 'Northwind'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
DBCC CHECKCATALOG 权限默认授予 sysadmin 固定服务器角色、db_owner 和 db_backupoperator 固定数据库角色的成员且不可转让。
下例对当前数据库和 pubs 数据库中对象的分配和结构完整性进行检查。
-- Check the current database. DBCC CHECKCATALOG GO -- Check the pubs database. DBCC CHECKCATALOG ('pubs') GO