BULK INSERT
actúa como una serie de INSERT
individuales instrucciones y, por lo tanto, si el trabajo falla, no revierte todas las inserciones confirmadas.
Sin embargo, puede colocarse dentro de una transacción para que pueda hacer algo como esto:
BEGIN TRANSACTION
BEGIN TRY
BULK INSERT OurTable
FROM 'c:\OurTable.txt'
WITH (CODEPAGE = 'RAW', DATAFILETYPE = 'char', FIELDTERMINATOR = '\t',
ROWS_PER_BATCH = 10000, TABLOCK)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH