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

症状

请考虑 Microsoft SQL Server Compact 3.5 中的以下情形:

  • 你有两个可串行隔离的事务。

  • 两个事务都尝试在包含 TABLOCK 锁定提示或 XLOCK 锁定提示的同一表上执行 DML 操作(查询/DML)。

在这种情况下,你会遇到死锁。

原因

出现此问题的原因是两个事务都等待另一个事务处理 XLOCK。 在编译查询时,两个事务都将获取表上的共享锁,然后保留对可串行隔离的锁。 当两个事务都尝试执行一个执行时,对包含 XLOCK 锁定提示的同一表的查询,这两个事务都等待 XLOCK 的另一个。 因此,会发生死锁。注意当两个事务对包含一个 TABLOCK 锁定提示的同一表执行 DML 操作时,也会发生此问题。

解决方案

SQL Server Compact 3.5 Service Pack 2

此问题的修补程序首次在累积更新2中发布。 有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2289547 SQL Server Compact 3.5 Service Pack 2 的累积更新2

状态

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

更多信息

有关死锁的详细信息,请访问以下 Microsoft 开发人员网络(MSDN)网站:

发生有关 DML 的详细信息,请访问以下 MSDN 网站:

DML有关软件更新术语的更多信息,请单击下面的文章编号以查看 Microsoft 知识库中的相应文章:

824684 用于描述 Microsoft 软件更新的标准术语的说明

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

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

谢谢您的反馈!

×