报错:
原因分析:
SQL SERVER报错信息已经告诉我们,与参数“max text repl size”有关,对于该参数,官方文档解释如下:
The max text repl size option specifies the maximum size (in bytes) of text, ntext, varchar(max), nvarchar(max),
varbinary(max), xml, and image data that can be added to a replicated column or captured column in a single
INSERT, UPDATE, WRITETEXT, or UPDATETEXT statement. The default value is 65536 bytes. A value of -1 indicates
that there is no size limit, other than the limit imposed by the data type.
翻译为中文:max text repl size (做大文本复制尺寸) 选项是指在执行INSERT, UPDATE, WRITETEXT,或者 UPDATETEXT
的时候,对于数据类型text, ntext, varchar(max), nvarchar(max), varbinary(max), xml, image 可以被添加到复制列或者
捕获列的最大长度。默认值是65536,如果设置为”-1”,则长度无限制。
简而言之,当参数max text repl size为65536时,如果发布数据库(主库)在执行INSERT, UPDATE, WRITETEXT,
UPDATETEXT操作时,列的字符长度超过了65536,就会产生复制操作失败,同时主库的INSERT, UPDATE,
WRITETEXT, UPDATETEXT也会失败。
这个表开启了CDC,所以在复制时候捕获列最大长度不能超过65536。
解决办法:
1、设置max text repl size为-1。
2、设置 max text repl size为一个较大数值。
选择第二种解决方案:
问题解决。