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

症状

请考虑以下情况:

  • 您有一个 Microsoft SQL Server 2012 数据库,其中已启用 " ALLOW_SNAPSHOT_ISOLATION " 和 " READ_COMMITTED_SNAPSHOT " 选项。

  • 对同一个表运行至少三个并发查询。

  • 查询使用(TABLOCK、UPDLOCK) 查询提示。

  • 每个查询都包装在一个显式的 BEGIN 事务 语句中,但不执行 提交事务 语句 。

在此方案中提交第一个查询时,其他查询之一将死锁。当 READ_COMMITTED_SNAPSHOT 与 TABLOCK 和 UPDLOCK 查询提示一起使用时,会话将在表上采用 IX 锁。 当两个并发会话尝试同时将 IX 锁转换为 X 个锁时,将发生死锁。 如果禁用 READ_COMMITTED_SNAPSHOT ,则会话将获取六个锁,这些锁在转换为 X 锁时不会死锁。 此修补程序通过 READ_COMMITTED_SNAPSHOT 在与 TABLOCK 和 UPDLOCK 提示一起使用时,通过授予 LCK_M_SCH_S 锁而不是 IX 锁来解决此问题。注意此问题也会在 Microsoft SQL Server 2008 R2 中发生。 将很快发布 SQL Server 2008 R2 的修补程序。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

状态

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

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

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

谢谢您的反馈!

×