代码之家  ›  专栏  ›  技术社区  ›  Philip Fourie

我可以从.NET运行DBCC CHECKDB吗?

  •  4
  • Philip Fourie  · 技术社区  · 17 年前

    DBCC CHECKDB(N'Northwind')  WITH NO_INFOMSGS
    

    例外 文本输出 命令的类型(如果是,我在输出中查找什么)

    2 回复  |  直到 17 年前
        1
  •  5
  •   Paul Groke Chronial    14 年前

    TABLERESULTS 选择 CHECKDB ( DBCC CHECKDB WITH TABLERESULTS ). 这将为您提供一个列如下的记录集 Error Level State , MessageText (除许多其他外)。

    这个

    MS表示,11到16级是“由用户生成的,并且可以由用户更正”。所以我想说,17以上的任何内容都应该意味着:停止进行任何备份(以避免用损坏的备份覆盖好的备份),尽可能使系统脱机,并立即通知操作员。

    CHECKDB

    笔记 :如果联合收割机 具有 NO_INFOMSGS ,如果 CHECKDB 如果没有发现任何错误,您将 任何

    注2 :在某些条件下,

    Msg 211, Level 23, State 51, Line 3
    Possible schema corruption. Run DBCC CHECKCATALOG.
    Msg 0, Level 20, State 0, Line 0
    A severe error occurred on the current command.  The results, if any, should be discarded.
    

    此外,由于这是一个严重性为>=20,它将导致客户端连接关闭。


    总而言之,我会跑步 . 如果命令失败,则会出现问题(可能是严重问题)。如果没有,则继续循环查看结果集,并查找任何严重性级别>=17如果你找到一个,可能也有一些严重的问题。

        2
  •  4
  •   John Sansom    17 年前

    是的,我相信您需要处理DBCC CHECKDB返回的文本输出。

    为了帮助您进行测试,以下参考详细介绍了如何故意损坏SQL Server数据库。

    http://sqlblogcasts.com/blogs/tonyrogerson/archive/2007/03/10/how-to-create-a-corrupt-database-using-bulk-insert-update-and-bcp-sql-server-as-a-hex-editor.aspx

    推荐文章