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

MsSQL 在字段后加固定字符串的有关问题

2013-03-26 
MsSQL 在字段后加固定字符串的问题a表:ashes_keepkeep_codeold_palce(类型varchar(50))1Null26楼3Nullb表:

MsSQL 在字段后加固定字符串的问题
a表:ashes_keep

keep_code   old_palce(类型varchar(50))
1           Null
2           6楼
3           Null

b表:temp2

keep_code
2
3

目的:更新a表中keep_code与b表keep_code相同的记录,在a表中的old_palce字段后加上字符串“ 2012登报”
代码如下:
update ashes_keep  
set old_palce=a.old_palce+' 2012年登报'
from ashes_keep a 
inner join temp2 b on a.keep_code=b.keep_code 

出现错误信息:将截断字符串或二进制数据,不知为何?
[解决办法]
截断说明你的长度不够,你自己查一下,你的varchar(50)类型,最多存储25个汉字
如果有汉字的最好用nvarchar类型
还有就是修改时,null+字符=null,这里要转换一下isnull(a.old_palce,'')+' 2012年登报'
或者你确实是要填null就不用了
[解决办法]
一个是你可以自己查询一下,汉字按两个字节算,字符按1个,这样加上你后来的后缀是否超过长度,
另一个是你可以查一下这个表是否有update触发器,是否相应的操作了其他表而造成截断

热点排行