修复: 17066 和 3624 错误时运行 sp_refreshview 存储过程中执行二进制大型对象相关的操作,SQL Server 2008 R2 中或在 SQL Server 2012年大批处理

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 2778479
Microsoft 为一个可下载文件分发 Microsoft SQL Server 2008 R2 Service Pack 2 的修补程序。修补程序是累积性的因为每个新版本包含的所有修补程序和已包含上一个 SQL Server 2008 R2 Service Pack 2 的所有安全修补程序修补都程序版本。
症状
请考虑以下情形:
  • Microsoft SQL Server 2008 R2 中或 Microsoft SQL Server 2012年中,您可以执行一批大型 SQL 语句。
  • SQL 语句执行二进制大对象 (BLOB) 有大量的相关操作。
  • SQL 语句在批处理中调用sp_refreshview存储过程。
在此方案中, sp_refreshview存储过程可能会失败。发生此问题时,在 SQL Server 错误日志中记录以下错误:

错误: 17066,严重: 16 日状态: 1。
SQL Server 断言: 文件: <tmpilb.cpp>,行 = 3199 失败肯定 = 'fNoWriters'。此错误可能是与计时相关。如果此错误仍然存在,重新运行该语句后,使用 DBCC CHECKDB 检查数据库的结构完整性,或重新启动服务器,以确保内存中数据结构不会遭到破坏。 </tmpilb.cpp>

错误: 3624,严重性: 20 日状态: 1。
系统断言检查已失败。请检查 SQL Server 错误日志以了解详细信息。通常,断言失败是由软件错误或数据损坏引起的。若要检查数据库损坏,请考虑运行 DBCC CHECKDB。如果达成协议将转储发送到 Microsoft,在安装过程中,将会最小转储发送给 Microsoft。更新可以从 Microsoft 在最新的 Service Pack 或从技术支持到 QFE。

错误: 17066,严重: 16 日状态: 1。
SQL Server 断言: 文件: <tmpilb.cpp>,行 = 3306 失败肯定 = 'fNoReaderWriterConflict'。此错误可能是与计时相关。如果此错误仍然存在,重新运行该语句后,使用 DBCC CHECKDB 检查数据库的结构完整性,或重新启动服务器,以确保内存中数据结构不会遭到破坏。</tmpilb.cpp>

此外,以下错误可能在 SQL Server 错误日志中记录时,会发生此问题:

错误: 17066,严重: 16 日状态: 1。
SQL Server 断言: 文件: <tmpilb.cpp>,行 = 3306 失败肯定 = 'fNoReaderWriterConflict'。此错误可能是与计时相关。如果此错误仍然存在,重新运行该语句后,使用 DBCC CHECKDB 检查数据库的结构完整性,或重新启动服务器,以确保内存中数据结构不会遭到破坏。</tmpilb.cpp>

备注
  • 调用批处理之外的sp_refreshview存储过程不会发生此问题。
  • Sp_refreshview存储过程将失败 (如果对同一批次内视图调用。
  • 二进制大对象相关的操作可以是隐式的。因此,这问题很难识别。但是,您可以通过使用错误消息确定此问题。
解决方案

累积更新信息

对于 SQL Server 2012年的累积更新 6

累积更新 6 中首次发布此问题的修补程序。有关如何为 SQL Server 2012年获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2728897 对于 SQL Server 2012年的累积更新包 6
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和已包含上一个 SQL Server 2012年的所有安全修补程序修补都程序版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 SQL Server 2012年生成 SQL Server 2012年发布后发布

累积更新 2 (对于 SQL Server 2012 SP1

累积更新 2 中首次发布此问题的修补程序。有关如何为 SQL Server 2012 SP1 中获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2790947 对于 SQL Server 2012 Service Pack 1 的累积更新包 2
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和已包含了以前 SQL Server 2012 SP1 的所有安全修补程序修补都程序版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2772858 在 SQL Server 2012 Service Pack 1 月发布之后发布 SQL Server 2012年生成

SQL Server 2008 R2 sp2 的累积更新 4

累积更新 4 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 sp-2 获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2777358 对于 SQL Server 2008 R2 Service Pack 2 的累积更新包 4
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和已包含上一个 SQL Server 2008 R2 SP 2 的所有安全修补程序修补都程序版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 SQL Server 2008 R2 生成在 SQL Server 2008 R2 Service Pack 2 月发布之后发布
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
参考
对于 SQL Server 的增量服务模式的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897 增量服务模式是可以从 SQL Server 组提供报告的问题的修补程序
有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499 Microsoft SQL Server 软件更新程序包的命名架构
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明

警告:本文已自动翻译

属性

文章 ID:2778479 - 上次审阅时间:02/18/2013 17:38:00 - 修订版本: 4.0

Microsoft SQL Server 2008 R2 Service Pack 2, SQL Server 2012 Enterprise Core, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2778479 KbMtzh
反馈