微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DBCC大全集之适用版本MS SQLServer 2008 R2----DBCC CHECKCATALOG检查指定数据库内的目录一致性数据库必须联机

检查指定数据库内的目录一致性。数据库必须联机。

 

Transact-SQL 语法约定

DBCC CHECKCATALOG 
[ 
        ( 
        database_name | database_id | 0
        )
]
    [ WITH NO_INFOMSGS ] 
database_name |  database_id | 0

要检查其目录一致性的数据库名称和 ID。如果未指定,或者指定为 0,则使用当前数据库数据库名称必须符合标识符规则。

WITH NO_INFOMSGS

取消显示所有信息性消息。

DBCC CATALOG 命令完成后,会将一条消息写入 sql Server 错误日志。如果 DBCC 命令成功执行,则消息指示成功完成以及命令运行的时间。如果 DBCC 命令在完成检查之前由于错误而停止,则消息将指示命令已终止,并指示状态值和命令运行的时间。下表列出并说明了该消息中可包含的状态值。

状态

说明

0

引发了错误号 8930。这指示导致 DBCC 命令终止的元数据损坏。

1

引发了错误号 8967。存在一个内部 DBCC 错误

2

在紧急模式数据库修复过程中出错。

3

这指示导致 DBCC 命令终止的元数据损坏。

4

检测到断言或访问违规。

5

出现终止了 DBCC 命令的未知错误

DBCC CHECKCATALOG 在系统元数据表之间执行各种一致性检查。DBCC CHECKCATALOG 使用内部数据库快照来提供需要执行这些检查的事务一致性。有关详细信息,请参阅了解数据库快照中的稀疏文件大小和 DBCC (Transact-SQL) 中的“DBCC 内部数据库快照用法”部分。

如果无法创建快照,则 DBCC CHECKCATALOG 将获取一个排他数据库锁以获得要求的一致性。如果检测到任何不一致,则无法修复这些不一致问题,必须使用备份来还原数据库

注意

对 tempdb 运行 DBCC CHECKCATALOG 不会执行任何检查。这是因为,为了提高性能,不允许对 tempdb 使用数据库快照。这意味着无法获得所需的事务一致性。回收服务器以解析任何 tempdb 元数据问题。

注意

DBCC CHECKCATALOG 不会检查 FILESTREAM 数据。FILESTREAM 在文件系统中存储二进制大型对象 (BLOB)。

DBCC CHECKCATALOG 仍作为 DBCC CHECKDB 的一部分运行。

如果未指定数据库,则 DBCC CHECKCATALOG 返回以下内容

DBCC execution completed. If DBCC printed error messages,contact your system administrator.

如果将 AdventureWorks2008R2 指定为数据库名,则 DBCC CHECKCATALOG 返回以下内容

DBCC execution completed. If DBCC printed error messages,contact your system administrator.

要求具有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。

以下示例将检查当前数据库和 AdventureWorks2008R2 数据库中的目录完整性。

-- Check the current database.
DBCC CHECKCATALOG;
GO
-- Check the AdventureWorks2008R2 database.
DBCC CHECKCATALOG (AdventureWorks2008R2);
GO

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐