Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Транзакция ли е масовото вмъкване на SQL Server?

BULK INSERT действа като поредица от отделни INSERT изрази и по този начин, ако заданието е неуспешно, то не връща всички ангажирани вмъквания.

Може обаче да бъде поставен в рамките на транзакция, така че можете да направите нещо подобно:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Общ преглед на оператора PRINT в SQL Server

  2. Count(*) връща нула

  3. Преобразувайте „datetimeoffset“ в „datetime“ в SQL Server (T-SQL примери)

  4. Име на таблица като променлива

  5. Симулация на CONNECT BY PRIOR на Oracle в SQL Server