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触发器,是否相应的操作了其他表而造成截断