一个关于字符串截取的有关问题,大家帮看看

一个关于字符串截取的问题,大家帮看看
insert into Table1 (F1, F2....  )  select   f1, f2, .....  from Table2       

因为table2 中的 一些字符串 字段比 table1 长一些 

比如 F1 ,char (20) , f1  Char(30).....

于是就这样写上面语句

insert into Table1 (F1, F2....  )  select   Substring(f1, 1, 20),  f2, .....  from Table2      

但是还是总显示 :
将截断字符串或二进制数据。
语句已终止。

问问各位大神这个地方怎么写才能通过 
------解决思路----------------------
试一下:
insert into Table1 (F1, F2....  )  select   convert(char(20),f1),  f2, .....  from Table2     
------解决思路----------------------
insert Table1 (F1)  select  cast(Substring(f1, 1, 20) as char(20))  from Table2

长度不一样的列,都要单独测试一下。另外截断后再强制转换一下。