I would highly recommend you to set the database recovery model to BULK_LOGGED while carrying out such heavy bulk data operations.
By default - database is set to SIMPLE or FULL recovery model.
The full recovery model, which fully logs all transactions, is intended for normal use.
The bulk-logged recovery model is intended to be used temporarily during a large bulk operation— assuming that it is among the bulk operations that are affected by the bulk-logged recovery model (for more information, see Operations That Can Be Minimally Logged at msdn.microsoft.com/en-us/library/ms191244.aspx).
BULK_LOGGED recovery model minimally logs the transactions
you can do it by using below snippet
--Determine the recovery model currently used for the database
SELECT name AS [Database Name],
recovery_model_desc AS [Recovery Model]
FROM sys.databases
WHERE name=<database_name> ;
--Remember this recovery model so that you can switch back to the same later
--set the database recovery model to BULK_LOGGED
ALTER DATABASE <database_name> SET RECOVERY BULK_LOGGED;
--Run your heavy data insert tasks
INSERT INTO DestinationTable
(ColumnA, ColumnB, ColumnC, etc.)
SELECT FROM SourceTable
(ColumnA, ColumnB, ColumnC, etc.)
/*Again set the database recovery model to FULL or SIMPLE
(the result which we had got from first query)*/
ALTER DATABASE <database_name> SET RECOVERY FULL;
--OR
ALTER DATABASE <database_name> SET RECOVERY SIMPLE;
*Note - Please do keep patience during the bulk operation is being processed * [:P]
I have done this many times before. Do let me know whether this helped you.
You can refer below MSDN article for details of switching between recovery models - Considerations for Switching from the Full or Bulk-Logged Recovery Model at msdn.microsoft.com/en-us/library/ms190203.aspx