下面语句为什么会出现这个错误?

lazybone 2004-05-09 02:20:31
update a set aa=id+aa

将截断字符串或二进制数据。
语句已终止。

其中id 与 aa 字段都是 char(10)
...全文
18 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-05-09
  • 打赏
  • 举报
回复
--建议:
update a set aa=cast(rtrim(id)+rtrim(aa) as char(10))
zjcxc 元老 2004-05-09
  • 打赏
  • 举报
回复
因为 id,aa 都是char(10),而char(10)是固定长度的,不中的部分系统自动补空格.
所以id+aa的长度就是char(20),当然就超出char(10),所以错误出现.

用rtrim(id)可以去空格.当然如果 id+aa 的除空格后的数据还是超过char(10)的话,错误照样会出现.
zjcxc 元老 2004-05-09
  • 打赏
  • 举报
回复
update a set aa=rtrim(id)+rtrim(aa)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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