日期:2014-05-18  浏览次数:20835 次

复制中遇到字符串数据,右截断错误
快照复制中其它表都是正常的,只有一个表分发时出现这样的错误,可是我删除原发布后重建发布,然后重新生成快照再启动分发,仍然出现同样的错误,可是两点数据结构都是一样的,我用导出的办法可以成功,为什么发布就是提示 "字符串数据,右截断错误 ",太奇怪了~!

------解决方案--------------------
如果数据库没打补丁,打上相应补丁
------解决方案--------------------
字符串数据,右截断错误

是不是有非法字符?如回车或其他符号?
------解决方案--------------------
这个错误应该是这样的。

这个复制表中
1、肯定有text类型字段
2、这个字段中有部分数据大于64K

那么对于在复制中的text类型需要设置到2G即可
------解决方案--------------------
老乌龟说的对
某个字段存在不可见的换行或回车符,ascii 10/13
所以才出现 右截断错误
------解决方案--------------------
use 复制的数据库
go
EXEC SP_CONFIGURE 'MAX TEXT REPL SIZE ', '2147483647 '
go
RECONFIGURE WITH OVERRIDE
go

就可以啊
------解决方案--------------------
这个问题就是复制产生的问题。
而不是数据写问题,因为在分发服务器既然可写,那么没有理由订阅不可写。(如果我们相信日志文件SQL SERVER没有写错的话)
因此只能是配置问题。

而通常LZ的类似问题都是对大文本类型产生的错误。
调整一下就可以。

不要莫须有的理解为数据写问题
------解决方案--------------------
因为我遇到过类似错误,具体原因还没找到


------解决方案--------------------
你可以用
select * from tableName where ascii(right(columnName,1)) in (10,13)
看下可能的字段上是否存在我说的情况

------解决方案--------------------
或者你字符编码不对。一边ascii,一边是unicode,那么unicode=> ascii就必然会提示这个了。
------解决方案--------------------
use 复制的数据库
go
EXEC SP_CONFIGURE 'MAX TEXT REPL SIZE ', '2147483647 '
go
RECONFIGURE WITH OVERRIDE
go
-----------------------------------------
发布,订阅数据库都要改吧好象