症状
假设你在 Microsoft SQL Server 2012 中使用序列对象。 当你查看会话的运行状态时,你可能会发现检查点进程与插入新序列号的会话之间存在未检测到的死锁。 在这种情况下,会话将无限期挂起。注意 当您终止被阻止的会话时,SQL Server 进程将停止。
原因
出现此问题的原因是检查点线程尝试刷新序列。 但是在 sysobjvalues 表中找不到其行。 这是因为另一个线程在具有序列的下一个值的事务上执行回滚,在这种情况下,将从 sysobjvalues 表中删除该行。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2012 SP2 的累积更新2 /en-us/help/2983175
SQL Server 2012 SP1 的累积更新11 /en-us/help/2975396
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。