加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:36:09 所属栏目:MsSql教程 来源:网络整理
导读:如果我在SQL Server 2000查询分析器中运行以下查询: BULK INSERT OurTable FROM 'c:OurTable.txt' WITH (CODEPAGE = 'RAW',DATAFILETYPE = 'char',FIELDTERMINATOR = 't',ROWS_PER_BATCH = 10000,TABLOCK) 在符合WeTable的40行模式的文本文件上,然后更改最
如果我在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读