KB3173157 - 添加存储过程,用于手动清理 SQL Server 中的更改跟踪端表

应用对象
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - 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 2012 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer

此更新添加了一个新的存储过程,可用于手动清理启用了更改跟踪的数据库中的边表 (change_tracking_objectid) 。

语法

sp_flush_CT_internal_table_on_demand [ @TableToClean= ] 'TableName'

参数

[@TableToClean= ]“TableName”是启用更改跟踪的表的名称。 积压工作将留给通过更改跟踪自动清理。

预期输出

运行存储过程时,会发生以下情况之一:

  • 如果表不存在或未启用更改跟踪,将引发适当的错误消息。
  • 此存储过程将调用另一个内部存储过程,该过程将使用 sys.change_tracking_tables 动态管理视图清理基于无效清理版本的更改跟踪端表中的内容。 运行时,它将显示每 5000 行删除 (的总行信息) 。

      

解决方法

SQL Server 的 Service Pack 信息

此更新已在 SQL Server 的以下 Service Pack 中修复:

SQL Server 2016 Service Pack 1

适用于 SQL Server 2014 的 Service Pack 3

适用于 SQL Server 2012 的 Service Pack 4

关于 SQL Server 的 Service Pack:

Service Pack 具有累积性。 每个新 Service Pack 除了包含所有新修复程序外,还包含以前 Service Pack 中的所有修复程序。 建议应用最新的 Service Pack 和该 Service Pack 的最新累积更新。 在安装最新的 Service Pack 之前,不需要安装以前的 Service Pack。 使用以下文章中的表 1 查找有关最新 Service Pack 和最新累积更新的详细信息。

如何确定 SQL Server 及其组件的版本、版本类别和更新级别

参考有关更改跟踪清理的更多信息,请参阅 更改跟踪 清理 (第 1 部分) 和 更改跟踪 清理 (第 2 部分) 。