You can use substring but if you specify length in the conversion then you won't need to.Instead of:INSERT INTO tbl2 (Col1, Col2)SELECT convert(varchar,Col1) ,convert(char,Col2)FROM tbl1
Use:INSERT INTO tbl2 (Col1, Col2)SELECT convert(varchar(5),Col1) ,convert(char(5),Col2)FROM tbl1
Besides query tuning, inserting huge amounts of data may require other stratagies. The first I would look at is breaking the huge single insert into smaller 'chunks' thereby reducing the transaction size which can be a major bottleneck in a huge transaction.There are other stratagies including managing constraints, indexes and staging data. Depends...