使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

在 Microsoft SQL Server 2012 中运行包含 IF EXISTS 语句的 SQL 查询。 如果 IF EXISTS 语句包含动态管理函数 sys.dm_db_index_physical_stats,则会收到类似于以下内容的访问冲突:

日期 时间spid # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *datetime** * * * * * * * * * * * * * * * * * *datetime * * * # * * * * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 日期时间spid # *日期时间 spid #日期时间spid # *日期时间spid # *日期时间spid # *异常地址 = 000007FF7DA5614B 模块(sqlmin + 000000000000614B)日期#时间spid # *异常代码 = c0000005 EXCEPTION_ACCESS_VIOLATION #在读取地址0000000800000F04 日期time时间spid# * 输入缓冲区510字节-日期time时间spid# *结束 SQL_query_code

注意

  • 如果在发生访问冲突时对该数据库运行 DBCC CHECKDB 命令,则不会报告错误。

  • 首次运行 SQL 查询时,不会发生访问冲突。 但是,每次运行 SQL 查询后,都将出现访问冲突。

  • 如果启用跟踪标记3654,则不会发生访问冲突。 但是,你将在跟踪中收到以下错误:

    位置: sosmemdbg:2074Expression: FALSESPID: 55Process ID:16972Description: MEMOBJ_INDEXANALYSIS--检测到 Unfreed 内存。消息3624,级别20,状态1,行5A 系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 从 Microsoft 的最新服务包或从技术支持部门获取的 QFE 中可能提供更新。 消息0、级别20、状态0、行0A 当前命令上出现严重错误。 应丢弃结果(如果有)。

解决方案

若要解决此问题,请安装 SQL Server 2012 SP1 的累积更新 7。 此问题首先在此累积更新中修复。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 有关详细信息,请参阅 SQL Server 2012 SP1 的最新累积更新

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

请参阅 Microsoft 用于描述软件更新的 术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×