检查指定数据库内的目录一致性。数据库必须联机。
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 数据库中的目录完整性。
Transact-SQL-- Check the current database.DBCC CHECKCATALOG;GO-- Check the AdventureWorks2008R2 database.DBCC CHECKCATALOG (AdventureWorks2008R2);GO总结
以上是内存溢出为你收集整理的DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCATALOG检查指定数据库内的目录一致性。数据库必须联机。全部内容,希望文章能够帮你解决DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCATALOG检查指定数据库内的目录一致性。数据库必须联机。所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)