sql-server – SQL Server批量插入事务?

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server批量插入事务?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我在sql Server 2000查询分析器中运行以下查询
BULK INSERT  OurTable 
FROM 'c:\OurTable.txt' 
WITH (CODEPAGE = 'RAW',DATAFILETYPE = 'char',FIELDTERMINATOR = '\t',ROWS_PER_BATCH = 10000,TABLOCK)

在符合WeTable的40行模式的文本文件上,然后更改最后20行的格式(可以说最后20行有更少的字段),我收到错误.然而,前40条线路承诺在桌子上.有没有关于我调用Bulk Insert的方式,使它不是事务性的,或者我需要做明确的事情强制它在失败时回滚?

解决方法

BULK INSERT作为一系列单独的INSERT语句,因此,如果作业失败,它不会回滚所有提交的插入.

然而,它可以放在一个交易中,这样你可以做这样的事情:

BEGIN TRANSACTION
BEGIN TRY
BULK INSERT  OurTable 
FROM 'c:\OurTable.txt' 
WITH (CODEPAGE = 'RAW',TABLOCK)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH

猜你在找的MsSQL相关文章