--执行这个语句进行设置exec sp_configure 'max text repl size (B)',2147483647

解决方案 »

  1.   

    这是联机帮助上的具体说明事务复制中的 text 和 image 数据类型
    在事务发布中复制 text 和 image 数据类型的过程受以下因素的影响: 支持在发布服务器上对 text 和 image 列使用 INSERT、UPDATE 和 DELETE 语句,而没有特殊考虑事项。但是,这些列不能由使用快照复制或事务复制和即时更新或排队更新订阅的订阅服务器更新。
    在用于复制的已发布表上,可以使用带 WITH LOG 选项的 WRITETEXT 和 UPDATETEXT 来复制日志记录文本操作。不支持为复制而发布的 text 或 image 列,而该复制是使用带有 WITH NO_LOG 选项的 WRITETEXT 和 UPDATETEXT 操作的复制,这是因为复制读取事务日志。
    仅当所有订户都运行 Microsoft® SQL Server™ 6.0 版或更高版本订阅服务器时,才能执行 UPDATETEXT 操作。WRITETEXT 操作将被复制为 UPDATE 语句,从而使 WRITETEXT 不但实现到 SQL Server 的复制,而且实现到 ODBC 订阅服务器的复制。(UPDATETEXT 操作仅被复制为 UPDATETEXT。)
    如果要修改多个 text 列,则不使用自定义过程,因为其它 text 列的值无日志记录。相反,将生成一个标准的 UPDATE 语句。
    可配置参数 max text repl size 控制可被复制的 text 和 image 数据的最大字节数。这样可允许支持不能处理较大 text 和 image 值的 ODBC 驱动程序和 SQL Server 实例,以及具有系统资源(虚拟内存)限制的分发服务器。当发布 text 或 image 列,并且运行超过配置限制的 INSERT、UPDATE、WRITETEXT 或 UPDATETEXT 操作时,操作将失败。
    使用 sp_configure 系统存储过程可设置 max text repl size 参数。
    当发布 text 和 image 列时,文本指针应当在与 UPDATETEXT 或 WRITETEXT 操作(并可重复读取)相同的事务内检索。例如,不要在一个事务中检索文本指针,然后却在另一个事务中使用它。它可能已移动并失效。
    另外,在获得文本指针后,不应在执行 UPDATETEXT 或 WRITETEXT 语句之前,执行任何可能改变文本指针所指向的文本位置的操作(例如更新主键)。 
    以下使用 UPDATETEXT 和 WRITETEXT 操作处理要复制数据的推荐方法:开始事务。
    获得带有可重复读取隔离的文本指针。
    在 UPDATETEXT 或 WRITETEXT 操作中使用文本指针。
    提交事务。 
    说明  如果未在同一事务中获得文本指针,则允许在发布服务器处进行修改,但更改不会发布到订阅服务器。 在评估订阅服务器数据库时,需要考虑的一个重要因素是:所复制的 text 和 image 列的文本指针将在订阅服务器表上被初始化,即使它们在发布服务器上未被初始化。因此,即使被分发任务添加到订阅服务器表中的各个 text 和 image 列中没有内容,它们也至少要占用 43 字节的数据库存储空间。