首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

UPDAT有关问题

2013-09-28 
UPDAT问题表里有列CODE,VARCHAR(10)现我想在这列的值后面加一个_code001002变code001_002_用update TB1

UPDAT问题
表里有列CODE,VARCHAR(10)
现我想在这列的值后面加一个'_'
code
001
002

code
001_
002_

用update TB1 set code=left(code+'_',10)
出现:
Server: Msg 8152, Level 16, State 9, Line 6
String or binary data would be truncated.
The statement has been terminated.
请教!
[解决办法]
update TB1 
  set code=rtrim(code)+'_'

[解决办法]
表的的code列长度应该没有varchar(10)请你确认一下.如果长度为10应该不会有字符串超过的报错.
[解决办法]
update TB1 
set code=ltrim(code)+'_'
[解决办法]
update TB1 set code=case when len(code)>=10 then code else ltrim(rtrim(code))+'_' end
[解决办法]
执行以下语句,查看是否有超长的数据.


select CODE,datalength(left(CODE+'_',10))
 from TB1 
 where datalength(left(CODE+'_',10))>10
    or len(left(CODE+'_',10))>10

[解决办法]
如果原来已经有10位,那么再加"_"就变成11位,应该这样

--查询
select * from TB1 where len(code) in(select max(len(code)) from tb1)
--看看最大长度是多少?



--更新
update TB1 
set code=ltrim(rtrim(code))+'_'
where len(code)<10

热点排行