执行bcp命令插入10条数据,有一条出错,如何回滚?用rollback trans没用

解决方案 »

  1.   

    参数:
    -b batch_size
    指定所复制的每批数据中的行数。每个批处理作为一个事务复制至服务器。SQL Server 提交或回滚(在失败时)每个批处理的事务。默认情况下,指定的数据文件中的所有数据都作为一批复制。请不要与 -h "ROWS_PER_BATCH = bb" 选项一起使用。-m max_errors
    指定在大容量复制操作取消之前可能产生的错误的最大数目。bcp 无法复制的每一行都将被忽略并计为一个错误。如果没有包括该选项,则默认为 10。
    尝试一下将-m参数设置为0,而-b参数设置为当前bcp操作的最大行数,将整个bcp处理作为1个事务进行处理,当产生错误时,该事务将回滚。
      

  2.   

    我不懂bcp命令,不知出错会不会更改error变量呢?在用变量记录下每条后error值的增加,当不为0就回滚不行么.
    我是看人家的存储过程里是这么做的,我是新手,说错了请别见笑。
      

  3.   

    好像听说如果一堆命令里有一个错,但后面的是正确的那么回把@@error改成0的,所以要另外用变量累计每条后的@error,不为零就回滚到最前面。