- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个计划作业来模拟 SQL Express 的 SQL Server 维护计划。 (我必须这样做,因为 SQL Express 不存在 SQL 代理和相关工具)
其中一个步骤是进行数据库完整性检查。其 TSQL 是:
DBCC CHECKDB(N'Northwind') WITH NO_INFOMSGS
我如何知道执行此命令期间是否发生错误,在使用 ADO.NET 时是否会抛出异常,或者我是否必须解析异常>命令的文本输出(如果是这样,我在输出中查找什么)
这很难测试,因为我手头没有损坏的数据库。
最佳答案
您可以将 TABLERESULTS
选项与 CHECKDB
结合使用(DBCC CHECKDB WITH TABLERESULTS
)。这将为您提供一个记录集,其中包含 Error
、Level
、State
、MessageText
(以及许多其他列)等列。
该记录集的 Level
列(严重级别)应该足以确定是否存在任何错误。
MS 表示,11 至 16 级“由用户生成,并且可以由用户更正”。因此,我认为高于 17 的任何内容都应该意味着:停止进行任何备份(以避免用损坏的备份覆盖良好的备份),如果可能,使系统脱机,并立即通知运算符(operator)。
级别 11 到 16 也应该报告给运算符(operator)(通过常规电子邮件或其他方式),以便他可以在必要时进行检查。 (不过,我不确定 CHECKDB
是否会报告级别 11 到 16 的错误。不过,在其中记录错误/通知运算符(operator)的代码可能不会有什么坏处。)
注意:如果将 TABLERESULTS
与 NO_INFOMSGS
结合使用,并且 CHECKDB
没有发现任何错误,您将不会得到任何记录集作为结果,甚至没有一个没有行的记录集。
注意2:在某些情况下,CHECKDB
将失败并显示错误代码。到目前为止,我只看到一个触发此问题的错误,如下所示:
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.
我不太使用 ADO.NET,但我认为 ADO.NET 会通过抛出异常来使用react。另外,由于这是一个严重性 >= 20 的错误,因此会导致客户端连接关闭。
<小时/>总而言之:我会运行DBCC CHECKDB WITH TABLERESULTS
。如果命令失败,则存在问题(可能是严重问题)。如果没有,请继续循环遍历结果集,并查找任何 >= 17 的严重级别。如果找到,则可能也存在某种严重问题。
关于.net - 我可以从 .NET 运行 DBCC CHECKDB 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896876/
是否可以在 sql server 的单个分区上运行 DBCC CHECKDB?我知道如果分区在单独的文件组上我们可以使用 CHECKFILEGROUP 但如果分区不在单独的文件组上怎么办?是否可以选择
我想知道是否有人可以帮助显示以下代码。我基本上是在尝试尽可能重新整理此代码,以便允许我对名为“servers.txt”的文本文件中提供的一组服务器名称运行它。 DBCC应该由PS脚本运行,并针对该服务
我目前正在尝试在 SQL Server 2005 上编写一个作业脚本,该作业将自动执行 DBCC CHECKDB 过程。基本上,我使用游标遍历并在实例上的每个数据库上运行 DBCC CHECKDB。有
我正在尝试创建一个按钮,根据数据库是否存在切换到 2 个 Activity 之一。我已经制作了一个数据库检查助手,但由于某种原因它总是给出错误,即使数据库存在。 点击按钮时的代码: public vo
我正在探索 SQL 2016 Stretch 数据库功能。只是想知道当我们在启用拉伸(stretch)的数据库上执行 DBCC CHECKDB 命令时,它是否也会验证数据库的远程副本? 我尝试在下面提
误区 #27:使用BACKUP ... WITH CHECKSUM可以替代DBCC CheckDB 错误 乍一看,由于BACKUP WITH CHEC
大家好,我的 sql server 数据库有一些问题。似乎自动备份无法正常运行,恢复也没有解决我的问题。我运行了一个 CHECKDB,它吐出以下错误。日志文件: Warnings: ---> W (1
我正在编写一个计划作业来模拟 SQL Express 的 SQL Server 维护计划。 (我必须这样做,因为 SQL Express 不存在 SQL 代理和相关工具) 其中一个步骤是进行数据库完整
是否可以在 SQL Server 2005 数据库中的特定表上运行:DBCC CHECKDB? 我有以下语法: DBCC CHECKDB [ [ ( database_name | datab
使用 Tsql,我如何知道 DBCC checkdb 最后一次在 SQL Server 上运行的时间(2000 年、2005 年或 2008 年)? 问候 最佳答案 2005 年及以上您可以运行 DB
MSDN 的 article关于命令“DBCC CHECKDB”在语法部分解释了执行数据库修复的三种方法: - REPAIR_ALLOW_DATA_LOSS - REPAIR_FAST - REPAI
dbcc checkdb 可用于检查 SQL Server 中的一致性错误,但 SQL Azure 不支持它。 是否有另一种方法来检查 SQL Azure 实例中的一致性错误?我也在寻找可以提供记录编
我正在致力于将存储过程从本地 SQL Server 数据库迁移到 Azure SQL 数据仓库 (ASDW)。在整个过程中,我不得不解决一些缺失的功能——耗时但并非不可能。我必须做的一件事是将 CTE
我是一名优秀的程序员,十分优秀!