KB3212318 - 修复:如果曾经在数据库上启用了更改跟踪SQL Server则无法将数据库设置为部分包含

应用对象
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

症状

请考虑以下情形:

  • 对启用了更改跟踪的表至少执行一次插入、更新或删除。
  • 禁用数据库中的所有更改跟踪。

在这种情况下,即使在禁用了更改跟踪之后,当您尝试将数据库设置为部分包含的数据库模型时,您也可能会收到类似于以下内容的错误消息:

注意

  • 消息 1205,级别 13,状态 18,过程 sp_flush_commit_table, 行号
  • 事务 (进程 ID 63) 在锁资源与另一个进程上死锁,并且已被选为死锁受害者。 重新运行事务。
  • 消息 3999,级别 17,状态 1, 行号
  • 由于错误 1205,无法将提交表刷新到 dbid 13 中的磁盘。 查看错误日志了解详细信息。

解决方法

此问题已在 SQL Server 的以下累积更新中修复:

SQL Server 2016 RTM 的累积更新 5

SQL Server 2016 SP1 累积更新 2

SQL Server 2014 Service Pack 2 的累积更新 4

关于 SQL Server 的累积更新:

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

SQL Server 2016 的最新累计更新

SQL Server 2014 的最新累计更新

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

参考资料了解 Microsoft 用于描述软件更新的 术语 。