sql >> Base de Datos >  >> RDS >> Sqlserver

¿La inserción masiva de SQL Server es transaccional?

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