请教“链接服务器返回了无效的数据”问题

earthpea 2008-07-02 11:35:41
一台远程SQL server 2005服务器,加为链接服务器后,运行一些SQL语句会报错,麻烦大家帮我看一下是什么原因?

链接服务器语句:

exec sp_addlinkedserver 'test129','','SQLOLEDB','192.168.1.129'
exec sp_addlinkedsrvlogin 'test129','false',null,'testuser','testpasswd'
go

运行的语句:
select DISTINCT cust_branch,cust_no,cust_address
from test129.basedb.dbo.cust_reg
where left(cust_branch,4) = '1025' and cust_no is null and cust_branch <> '102500'

当这个语句运行时,报错:
消息 7339,级别 16,状态 1,第 1 行
链接服务器 'test129' 的 OLE DB 访问接口'SQLNCLI' 返回了对列 '[test129].[basedb].[dbo].[cust_reg].cust_address' 无效的数据。

一样的语句,如果在129服务器本地运行,不报错,如果在“对象资源管理器”中“新建查询”后运行,也不报错,就是使用链接服务器时要报这个错,报错的字段一般都是有中文的字段,有时会发现中文字段内容中有半个字符,但有的看起来很正常,也报错,更奇怪的是有些语句,如select a,b,c from t1正常,而update t2 set k = f.a from (select a,b,c from t1) as f where f.b = t2.f就要报错~~

本地服务器和远程的服务器都是win2003+sql server 2005 sp2 9.0.3042。

网上查了好了资料都找不到怎么解决这种问题,还请大家帮忙了,先谢谢了。
...全文
769 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
endink 2010-09-15
  • 打赏
  • 举报
回复
顶一下,等待牛人解决
viptiger 2008-07-02
  • 打赏
  • 举报
回复
cust_address 字段类型改成 NText 或者 Nvarchar试一下
hery2002 2008-07-02
  • 打赏
  • 举报
回复
数据中有特殊字符等可能就会有问题,
处理方式,
查询出有特殊字符的数据,修改掉就可以了。
M1CR0S0FT 2008-07-02
  • 打赏
  • 举报
回复
参考:http://forums.microsoft.com/china/ShowPost.aspx?PostID=2934723&SiteID=15

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧