sql2000升级到2005后出现的问题(返回了对列**无效的数据)

时间:2022-09-12 07:29:36
在一台新的服务器上安装了sql 2005,将原服务器sql 2000上的一个库移了过去,原来使用的ASP程序现在开始报错,应该注意哪些地方呢?
涉及的服务器有三台:
原服务器:win2000+sql 2000
新服务器:win2003+sql 2005
数据平台服务器:win2000+sql 2000
数据转移方式:从原服务器导出建库脚本,在新服务器上建立空库后运行,然后再从数据平台服务器抽取一次数据,在抽取其中一个表时,报“返回了对列****无效的数据”错,用原服务器运行无错,直接查看报错行,没有找到问题,于是直接从原服务器上把数据insert select到新服务器。

将原来使用的ASP程序从原服务器复制到新服务器,进行报数据库联接错,修改Provider值为SQLNCLI.1;后正常。

update数据时,报错,将conn.execute sql,rs修改为conn.execute(sql)后正常。

在从数据平台服务器查询数据时,又报错,报的应该和数据转移时的错误是一样的:
Microsoft SQL Native Client 错误 '80040e14' 

链接服务器 'ck129' 的 OLE DB 访问接口'SQLNCLI' 返回了对列 '[ck129].[basedb].[dbo].[branch].branch_name_chn' 无效的数据。 

/search.asp,行 41 

同时的程序在原服务器上运行正常通过(同时运行,一样的程序)

请大家帮我考虑一下是什么情况引起的呢?

10 个解决方案

#1


升级到SQL Server 2005的常见问题解答 
http://database.ctocio.com.cn/tips/314/7573314.shtml

#2


对问题的补充:
asp程序中运行的SQL在2005中直接运行的话,报错如下:
消息 7339,级别 16,状态 1,第 1 行
链接服务器 'ck129' 的 OLE DB 访问接口'SQLNCLI' 返回了对列 '[ck129].[basedb].[dbo].[branch].branch_name_chn' 无效的数据。 


ck129是用以下方法连接的:
exec sp_addlinkedserver  'ck129','','SQLOLEDB','192.168.32.129'
exec sp_addlinkedsrvlogin 'ck129','false',null,'ck','******'
go


谢谢大家。

#3


1楼潇洒老乌龟给的文档已经看过了,没有涉及到这个问题的,不好意思了~~

#4


再顶起来,麻烦大家帮忙看一看,很急的~~~

#5


branch_name_chn 这一列的数据类型是什么?是用户自定义数据类型吗

#6


是nchar(50),不是自定义数据类型。

#7


客户机上的oledb for sql server是否支持2005,是否最新的

#8


直接在sql2005的查询器中运行话,也是一样的报错,详情请看2楼

#9


要装上SQL 2005 的补丁包.好像是SP1

#10


已经解决了,原因是数据平台服务器的数据中,branch_name_chn有一条记录可能会有半个汉字字符,用2000没问题,但2005就报错了。
将那条记录再update了一次就可以了。

谢谢大家的关注,结帐。

#1


升级到SQL Server 2005的常见问题解答 
http://database.ctocio.com.cn/tips/314/7573314.shtml

#2


对问题的补充:
asp程序中运行的SQL在2005中直接运行的话,报错如下:
消息 7339,级别 16,状态 1,第 1 行
链接服务器 'ck129' 的 OLE DB 访问接口'SQLNCLI' 返回了对列 '[ck129].[basedb].[dbo].[branch].branch_name_chn' 无效的数据。 


ck129是用以下方法连接的:
exec sp_addlinkedserver  'ck129','','SQLOLEDB','192.168.32.129'
exec sp_addlinkedsrvlogin 'ck129','false',null,'ck','******'
go


谢谢大家。

#3


1楼潇洒老乌龟给的文档已经看过了,没有涉及到这个问题的,不好意思了~~

#4


再顶起来,麻烦大家帮忙看一看,很急的~~~

#5


branch_name_chn 这一列的数据类型是什么?是用户自定义数据类型吗

#6


是nchar(50),不是自定义数据类型。

#7


客户机上的oledb for sql server是否支持2005,是否最新的

#8


直接在sql2005的查询器中运行话,也是一样的报错,详情请看2楼

#9


要装上SQL 2005 的补丁包.好像是SP1

#10


已经解决了,原因是数据平台服务器的数据中,branch_name_chn有一条记录可能会有半个汉字字符,用2000没问题,但2005就报错了。
将那条记录再update了一次就可以了。

谢谢大家的关注,结帐。