char与varchar

xiangaylian 2014-06-03 06:00:20
字段A原来是char(18),现在改为varchar(18)了,但新增数据后,取出来的还是固定长度18.
比如新增 '1001',取出来变成 '1001 '
求解释,varchar不是可变长度么?需要改什么默认规则?
我用的是SQL Server 2008 R2
...全文
193 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangaylian 2014-06-07
  • 打赏
  • 举报
回复
引用 4 楼 DBA_Huangzj 的回复:
额,程序端还是char(18)导致的?
我们用的是EF,Model中定义的A还指定的char(18),默认还是按char(18)保存的。
EdsionWang 2014-06-04
  • 打赏
  • 举报
回复
取值是trim一下
ai_li7758521 2014-06-04
  • 打赏
  • 举报
回复
char(N):如果数据不够长,会补齐。换成varchar(18)后需要去掉补齐的空格
xiaoxiangqing 2014-06-04
  • 打赏
  • 举报
回复
要清空原来里面的空格
--小F-- 2014-06-04
  • 打赏
  • 举报
回复
引用 1 楼 xiangaylian 的回复:
好程序问题不是数据结构问题,已解决了,来个人结了。
..
發糞塗牆 2014-06-04
  • 打赏
  • 举报
回复
额,程序端还是char(18)导致的?
幸运的意外 2014-06-04
  • 打赏
  • 举报
回复
既然楼主解决了,那我只好占楼接分了。
tcmakebest 2014-06-04
  • 打赏
  • 举报
回复
貌似从来不用char的,都用nvarchar,一劳永逸
haitao 2014-06-04
  • 打赏
  • 举报
回复
转的时候,保留了后续空格 之后添加的,就不会了
在路上_- 2014-06-03
  • 打赏
  • 举报
回复
更改字段类型后,对数据表更新一下:
UPDATE 表 SET A=RTRIM(A)
无涯大者 2014-06-03
  • 打赏
  • 举报
回复
取数据的时候,Trim下就行了...
xiangaylian 2014-06-03
  • 打赏
  • 举报
回复
好程序问题不是数据结构问题,已解决了,来个人结了。

34,576

社区成员

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

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