SQL2000的表里一列 数据类型是varchar(40)能存下DataLength 是 41 的字符么?
最近碰到了这样一个问题。
我要把一张表的数据从 SQLServer2000 同期到 SQLServer2008 里。
2000 和 2008 的表的结构是一模一样的。
在2008的查询分析器里执行的是
INSERT INTO tabele2008
SELECT prodname ,列2 ,***
FROM [XXX.XXX.XXX.XXX].DB1.dbo.tabele2000
执行的时候直接报错
链接服务器 'XXX.XXX.XXX.XXX' 的 OLE DB 访问接口 'SQLNCLI10' 返回了对列 XXX.XXX.XXX.XXX].DB1.dbo.tabele2000.prodname'无效的数据。
而在2000 的查询分析器里执行
SELECT prodname ,列2 ,***
FROM DB1.dbo.tabele2000 却没有错误。
具体看了一下数据
发生问题的字段 prodname 这个字段定义是 varchar(40) 里面存的是商品的名字
把商品的名字拷贝出来 用 SELECT Datalength()看是 41 这样的数据也能存到数据库里么?
怎么解释 在2008查询分析器 执行出错的原因?