当前位置:编程问答 > SQLServer >

进程未能大容量复制到表 解决方法

在两台服务器间做发布,订阅时,出现了"进程未能大容量复制到表"报错.上网搜索了好多资料.
最后总算是成功了. 也不是很明白是那一个方法实现的,还是前后面的也起到了作用.
记录下来,供日后参考,以下是解决时尝试的各种方法.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
进程未能大容量复制到表“"SearchMetadata"”中。
上一次执行批处理的事务序列号和命令 ID 分别是 0x000002DD00000BB101FA00000002 和 299。
字符串数据,右截位
(源: CNOOCLTD-WEB (ODBC); 错误代码: 22001)
---------------------------------------------------------------------------------------------------------------
在 BCP 数据文件中遇到的意外的 EOF
(源: ODBC SQL Server Driver (ODBC); 错误代码: S1000)
---------------------------------------------------------------------------------------------------------------
函数序列错误
(源: CNOOCLTD-WEB (数据源); 错误代码: S1010)
---------------------------------------------------------------------------------------------------------------

1.安装补丁
2.text- ntext  (最后用的这个居然OK了.)
3. 
sp_configure   'max text repl size',2147483647 
go 
RECONFIGURE   WITH   OVERRIDE 
go
4.合并复制试试
5.解决了,把快照格式改为字符模式就不报错了。可是运行完了订阅目标数据库的数据好像并没有更新
6.
限制和考虑事项   
使用可转换订阅的限制和考虑事项包括:     
    
WRITETEXT   和   UPDATETEXT   语句不能用于更新数据类型为   text、ntext   或   image   的列。     
    
订阅服务器不能更新或插入   text   或   image   值,因为无法在触发器内从插入或删除的表读取这些值。同样,订阅服务器不能使用   WRITETEXT   或   UPDATETEXT   更新或插入   text   或   image   值,因为这些数据由发布服务器重写。但您可以将   text   和   image   列分区到独立的表中,并在一个事务内修改这两个表。如果需要在订阅服务器上对   text   或   image   列更新,则可以使用合并复制对这些值进行同步处理。如果所有的更新都按照这条准则进行,则可以确保无冲突,其原因在于除非更新了主表(它由   2PC   保护),否则   text   或   image   表的更新无法发生。

------------------------------------------------------------------------------------------------
在订阅发布时出错如下错误:
出错信息:
"进程未能大容量复制到表XXXXX中"
在BCP数据文件中遇到意外的EOF。


错误产生:
1、输入一条简单的信息。内容为“测试”二字。测试订阅发布,一切正常。
2、输入内容为“’’’//\\\\sfasdf’’asf\asdfasf/asf’asdfa\af’’asf”这样的非常字符。测试订阅发布,一切正常。
3、测试大容量数据。在内容栏中输入800多个“测试”字样。然后提交。错误出现。
注:内容一栏对应的数据库字段是text类型的。

根据测试的情况来看,问题可能出在text字段的数据量过大。可是在从WEB 界面插入数据时,数据并未越界。也就是说插入的数据并未超过text字段的长度。
---------------------------------------------------------------------



try:

select into/bulkcopy 当为 true 时,允许使用 SELECT INTO 语句和快速大容量复制
EXEC sp_dboption 'pubs', 'select into', 'TRUE'
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到什么编程难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,