t-sql高手来救命!!!

pf0914 2011-07-06 04:59:05
我通过DBLink跨服务器查询出来的数据想插入到本地的表里面,遇到"将截断字符串或二进制数据"错误!


这是我的sql语句,跨服务器查询B库的student表,把数据插入到本地的A库student表中,就出现这个错误。
各个字段全都是varchar类型;
单独执行跨服务器查询的语句,能够查询出结果。我真弄不明白怎么回事了。
求教高位大牛!


insert into A.dbo.student([sid],[name],sex,mphone,addr,sfz)
select isnull(xh,'') xh,isnull(xm,'') xm,sex=(case when xb=1 then '男' else '女' end),
isnull(mobilephone,'') lxdh,isnull(LXDZ,'') lxdz,isnull(sfzh,'') sfzh
from OPENDATASOURCE(
'SQLOLEDB',
--'SQLNCLI',
'Data Source=***.***.***.***;User ID=sa;Password=123'
).B.dbo.student as t where t.xh collate Chinese_PRC_CS_AS
not in(select sid from murp.dbo.student)
...全文
88 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pf0914 2011-07-06
  • 打赏
  • 举报
回复
哇靠,搞定了。。
感谢感谢大家,每个字段逐一检查。。之前看的太马虎。感谢!!
pf0914 2011-07-06
  • 打赏
  • 举报
回复
给视图插入数据。
视图是可以插入数据的,我做过测试,没问题。只要视图内没有join表
AcHerat 2011-07-06
  • 打赏
  • 举报
回复
视图怎么会插入数据,到底是给表插入数据还是视图
pf0914 2011-07-06
  • 打赏
  • 举报
回复
实际上我需要插入数据的那张表,是通过跨库做出来的视图,另一个库中一模一样的表,不存在join表。应该说这样的视图插入数据应该是没问题的吧。 我试过到另一个库的表里面去做操作,也是这个错误。
AcHerat 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fengzhisha0914 的回复:]

To:ssp2009、investruth、AcHerat、
我之前检查过A库要查询的表的字段长度,
按B库查询出来的实际数据,是绝对够的。

现在也要把A库的字段长度定义的和B库一样吗?

To:qianjin036a
查询出最大长度之后呢?改变字段的长度吗?
[/Quote]

是的,字段长度定义和B库一样可以。
pf0914 2011-07-06
  • 打赏
  • 举报
回复
To:ssp2009、investruth、AcHerat、
我之前检查过A库要查询的表的字段长度,
按B库查询出来的实际数据,是绝对够的。

现在也要把A库的字段长度定义的和B库一样吗?

To:qianjin036a
查询出最大长度之后呢?改变字段的长度吗?
-晴天 2011-07-06
  • 打赏
  • 举报
回复
用这个可以先测试各列的最长长度:
select max(len(isnull(xh,''))) xh,max(len(isnull(xm,''))) xm,max(sex=(case when xb=1 then '男' else '女' end)),
max(len(isnull(mobilephone,''))) lxdh,max(len(isnull(LXDZ,''))) lxdz,max(len(isnull(sfzh,''))) sfzh
from OPENDATASOURCE(
'SQLOLEDB',
--'SQLNCLI',
'Data Source=***.***.***.***;User ID=sa;Password=123'
).B.dbo.student as t where t.xh collate Chinese_PRC_CS_AS
not in(select sid from murp.dbo.student)
AcHerat 2011-07-06
  • 打赏
  • 举报
回复
A.dbo.student([sid],[name],sex,mphone,addr,sfz)

这个表中某些字段和你查询出来的数据长度不匹配,是A库那个表某字段宽度太小,字符型的定义大些。
investruth 2011-07-06
  • 打赏
  • 举报
回复
长度+1
快溜 2011-07-06
  • 打赏
  • 举报
回复
字段长度不够吧
-晴天 2011-07-06
  • 打赏
  • 举报
回复
查一查是哪个列的字符长度不够,把它的长度设置了长一些.

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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