例子:
update a set a.name=b.name1 from a,b where a.id=b.id
例子延伸:更新的时候会把字符串 转为科学计数法 怎么办?
答:用 cast 转换一下 ,或者双cast
update LoaneeExpand set LoaneeExpand.phone=cast(cast(tt.PHONE as decimal(18,0)) as nvarchar(50)) from LoaneeExpand ,tt where LoaneeExpand .id=tt.id
例子再次深入延伸问题:更新时
String or binary data would be truncated.
The statement has been terminated.
字符串或二进制数据将被截断。
该语句已终止。 怎么办 ?
很明显 就是你要更新的表的 字段长度不够 , 可是查询表 b的 所有真实 长度 len(b.name) <20 .. 都符合 表a 的字段长度啊,这是为什么?
答 :更新表a时 ,并是不按照 表b的真实长度 计算的,而是按照表b字段的定义长度 ,所有把表a需要修改的字段长度,按照表b的字段长度 设定就好了。