I worked with a similar problem, and in my table there were about 8 million rows with 43 columns. Deleting indexes, Truncating a table, Performing a bulk insert, Playing indexes - it is still pretty fast, given the amount of data, and I perform this task after hours.
If you want to avoid using TRUNCATE , you can create a procedure to perform the crop and use the user with the correct permissions. That is, if granting permission to the job user is the reason why you want to avoid using the truncate command:
CREATE PROCEDURE dbo.TruncateTableName WITH EXECUTE AS 'SqlUserWithTruncatePermission' AS BEGIN TRUNCATE TABLE TableName END GO
If you want to try this, you can find out more:
http://msdn.microsoft.com/en-us/library/ms188354(v=SQL.90).aspx
Similarly, for other actions that require more permissions than you want, you can follow suit ...
Nonym source share