症状
请考虑以下情况:
-
在 Microsoft SQL Server 2012 R2 中以异步高性能模式使用数据库镜像。
-
在主体数据库上启用更改跟踪。
-
在镜像数据库上创建数据库快照。
-
在数据库快照上使用 CHANGE_TRACKING_CURRENT_VERSION ()函数,检查与上次提交的事务相关联的版本。
在此方案中, CHANGE_TRACKING_CURRENT_VERSION () 函数的返回值不正确。 它可以是 0 或低于从主体数据库返回的值。
原因
出现此问题的原因是与数据库快照上的函数处理相关的缺陷。 CHANGE_TRACKING_CURRENT_VERSION () 函数在数据库快照上返回错误值。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。 应用此修补程序后,SQL Server 将更改 CHANGE_TRACKING_CURRENT_VERSION () 函数逻辑。 数据库快照上的 CHANGE_TRACKING_CURRENT_VERSION ()函数的返回值将正确。
SQL Server 2008 R2 SP2 的累积更新11 /en-us/help/2926028
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。