【问题标题】:DBCC CheckDb-any ways to detect errors vb.net?DBCC CheckDb-有什么方法可以检测vb.net的错误?
【发布时间】:2017-12-12 13:49:24
【问题描述】:

我正在使用以下代码检查我的数据库是否有任何问题/需要故障排除:

Dim cmd As New SqlCommand("DBCC CHECKDB (offpoDb) WITH TABLERESULTS", con)
Dim reader As SqlDataReader = cmd.ExecuteReader
executing.Content = "Checking datatabse for errors"
executing.Margin = New Thickness(243, 111, 0, 0)
While reader.Read
    strBuilder.AppendLine(CStr(reader("MessageText")))
End While
reader.Close()
MessageBox.Show(strBuilder.ToString)

现在,DBCC CHECKDB 命令可能会产生如下结果:

CHECKDB found 0 allocation errors and 15 consistency errors in database 'mydb

可以修复以下SQL查询:

ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER WITH ROLLBACK 
IMMEDIATE;
BEGIN TRANSACTION;
DBCC CHECKDB ('AdventureWorks2008R2', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE AdventureWorks2008R2 SET MULTI_USER;

但是在通过我的应用程序执行以下查询之前,有没有办法知道DBCC CHECKDB 是否真的返回了任何错误?因为没有任何错误,修复数据库是没有用的……

有什么帮助吗?

我脑海中闪过的一个想法

我正在考虑将字符串从 strBuilder 获取到文本框。将检查文本框是否存在以下行 CHECKDB found 0 allocation errors and 15 consistency errors in database..

但这仍然是不可能的,因为那条线有时会有所不同。例如

CHECKDB found 0 allocation errors and 15 consistency errors

CHECKDB found 1 allocation errors and 14 consistency errors

有更好的想法吗?

【问题讨论】:

    标签: sql-server vb.net dbcc


    【解决方案1】:

    有多种可能性:

    1.
    在命令中添加NO_INFOMSGS选项。
    这样,如果没有发现错误,则不会返回任何记录。

    DBCC CHECKDB (dname) WITH TABLERESULTS, NO_INFOMSGS
    

    2.
    读取Level 列的值。如果一个高于10,则发生错误。 (Reference)
    您可以获得的 DBCC 错误列表:

    SELECT * FROM sys.sysmessages 
    WHERE description LIKE '%checkdb%' AND msglangid = 1033 AND severity > 10
    

    3.
    检查结果字符串中是否有大于0 的数字。

    For Each c As Char In "CHECKDB found 0 allocation errors and 15 consistency errors"
        If (Char.IsNumber(c)) AndAlso Integer.Parse(c) > 0 Then
            'Errors occured
        End If
    Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多