• If you must have all or nothing for the entire dataset per ETL operation, an explicit transaction wrapping the bulk copy/load gives you that control (instead of batch level). Also, if the T part of your ETL involves one or more tasks that must be complete for each batch then explicit transactions allows you to control scope and failure actions.

    Just remember that same optimization practices apply for how you handle the loading so don't end up with a REBAR process. Explicit transactions can sometimes obscure REBAR script impact because of reduced log flushes. Doing a bunch of row inserts using a loop still has higher overhead compared to bulk insert and the difference can be significant if you're dealing with lots of rows.