I assume that by "fastest" you mean run time:
The fastest way to do this from compiled code is to use SQLBulkCopy methods to insert data directly into your target table. You will need to write your own code to open and read the source file, and then split it into the appropriate columns according to their fixed-width offsets, and then pass them to SQLBulkCopy. (I think I have an example of this somewhere if you want to go this route)
The fastest way to do this from T-SQL is to upload it to DOS and then use BCP to upload the file directly to your target table. You will need to create a BCP format file that defines fixed-width columns for this estimate.
The fastest way to do this from T-SQL without using the CLI is to use BULK INSERT to load the file into a single-column staging table as DATA VARCHAR(MAX)
(do this NVARCHAR (MAX) if the file has Unicode data in it). Then execute the SQL query that you write to split the DATA column into its fixed-width fields, and then paste them into your target file. This should only accept one INSERT statement, although it can be large. (I have an example of this somewhere as well)
Another “fastest” option would be to use the SSIS package or the SQL Server Import Wizard (they are actually the same thing under the hood). SSIS has a pretty steep learning curve, so it's really worth it if you expect to do this (or such things) for other occasions in the future.
Wizard, on the other hand, is pretty easy to use as a one-time use. A wizard can also carry out a scheduled task, so if you need to repeat the same thing every night, this is by far the easiest if it really works on your case / file / data. If this is not the case, then it can be a real headache to get it right, but fixed-width data should not be a problem.
The fastest of all these parameters has always been (and probably always will be) BCP.
source share