You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2019合并复制无法从行级跟踪切换为列级跟踪怎么办?

SQL Server 2019 合并复制列级跟踪配置失效解决方案

常见遗漏配置项

  • 参数值设置错误:合并复制的sp_addmergearticle存储过程中,@column_tracking参数设为true才是开启列级跟踪,设为false代表使用默认的行级跟踪。你之前脚本设置的@column_tracking = 'false'本身就是行级跟踪配置,属于参数值写反的常见问题。
  • 运行中的同步任务阻塞配置修改:修改跟踪级别前必须停止所有关联该发布的合并代理作业,确保没有正在执行的同步任务,否则未完成的同步状态会导致配置修改被自动回滚。
  • 已初始化项目不支持动态修改:针对已经完成初始化、正在运行的发布项目,无法直接在属性页修改跟踪级别,必须删除对应表项目后重新添加,再重新初始化订阅才能生效。
  • 数据库兼容级别不匹配:需确认发布数据库的兼容级别不低于150(SQL Server 2019 对应的默认兼容级别),低兼容级别下部分合并复制参数会被强制重置为默认值。

正确配置操作步骤

  1. 停止所有关联该发布的合并代理、快照代理作业
  2. 删除需要修改跟踪级别的现有表项目,清理旧的快照文件
  3. 重新添加表项目时指定列级跟踪参数,T-SQL 示例如下:
EXEC sp_addmergearticle 
    @publication = N'替换为你的发布名称', 
    @article = N'替换为表项目名称', 
    @source_object = N'替换为源表名', 
    @column_tracking = N'true',
    @row_tracking = N'false';
  1. 重新运行快照代理生成新的快照
  2. 对所有订阅服务器执行重新初始化操作
  3. 重启合并代理作业完成同步

配置生效验证方法

执行以下查询,查询结果中column_tracking值为1即代表列级跟踪已成功开启:

USE [替换为你的发布数据库名称]
GO
SELECT name, column_tracking 
FROM sysmergearticles 
WHERE name = N'替换为你的表项目名称'
GO

内容的提问来源于stack exchange,提问作者Rob Marsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:48:04