症状
假设你使用 SQL Server 2017。 你可能会在随机情况下收到以下断言,以保护事务免受 正在运行的过程以及对同一过程的并发修改。 当断言发生时,你可能会注意到租约超时的副作用。 此外,Alwayson 可用性组(AG)和主数据库将进入 "正在解决" 状态。 修复后,收到错误41305( 由于可重复的读取验证,当前事务无法提交 失败)而不是断言。 如错误所述,在这种情况下,你应该重新运行失败的查询。
开始堆栈转储:
CurrentTime spid SpidId
位置: "LocationPath":LocationId
表达式: HK_E_ALTERED_TABLE_IS_MODIFIED! = hr
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
关于 SQL Server 的累积更新:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
参考
了解 Microsoft 用于描述软件更新的术语。