a表:ashes_keepkeep_code old_palce(类型varchar(50))
1 Null
2 6楼
3 Nullb表:temp2keep_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 出现错误信息:将截断字符串或二进制数据,不知为何?
1 Null
2 6楼
3 Nullb表:temp2keep_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 出现错误信息:将截断字符串或二进制数据,不知为何?
2 6楼 2012登报
3 2012登报
如果有汉字的最好用nvarchar类型
还有就是修改时,null+字符=null,这里要转换一下isnull(a.old_palce,'')+' 2012年登报'
或者你确实是要填null就不用了
old_palce字段类型为varchar(50),软件已经使用许多年,不敢改数据库的字段类型,怕出意外!
目前程序控制下字段存储的汉字即使加上' 2012年登报' 不会超过25个
请指教,谢谢!
另一个是你可以查一下这个表是否有update触发器,是否相应的操作了其他表而造成截断
set old_palce=isnull(cast(a.old_palce as varchar(40)),'')+' 2012年登报'