BULK INSERT
agit comme une série de INSERT
individuels et donc, si le travail échoue, il n'annule pas toutes les insertions validées.
Il peut cependant être placé dans une transaction afin que vous puissiez faire quelque chose comme ceci :
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