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 信息

以下 Service Pack 中修复了此更新,适用于SQL Server:

SQL Server 2016 Service Pack 1

Service Pack 3 for SQL Server 2014

Service Pack 4 for SQL Server 2012

关于SQL Server的 Service Pack:

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

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

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