--这句应该可以吧?insert into table2(Name) select cast(Name as varchar(40)) from Table1--这样可以解决汉字的问题啊:
select cast('中国' as varchar(2)),cast('中国' as varchar(3))--结果:中
--证明处理正确处理汉字啊
select cast('中国' as varchar(2)),cast('中国' as varchar(3))--结果:中
--证明处理正确处理汉字啊
select cast(Name as varchar(40)) from Table1 得到的结果没有问题。就是不能插入到Table2中去,提示:String or binary data would be truncated.
The statement has been terminated.
用以下的语句则出错:
insert into table2(Name) select substring(ltrim(rtrim(Name)),1,40) from Table1
insert into table2(Name) select left(ltrim(rtrim(Name)),40) from Table1
insert into table2(Name) select substring(ltrim(rtrim(convert(varchar(40),Name)),1,21) from Table1
insert into table2(Name) select left(ltrim(rtrim(convert(varchar(40),Name)),1,21)),40) from Table1
不知道你明白我的意思没有,先转成varchar类型,然后再substring