根据MSDN: SqlBulkCopy.BatchSize的说明:如果SqlBulkCopy实例没有声明UseInternalTransaction选项,则每次将BatchSize行发送到服务器,但不执行任何与事务相关的操作。如果启用了UseInternalTransaction,则每个批次的行都作为单独的事务插入。BatchSize属性可以随时设置。如果已经在进行大容量复制,则当前批次的大小根据上一批次的大小确定。随后的批次使用新的大小。如果BatchSize最初为零并且在WriteToServer操作已经在进行中时发生更改,则该操作会将数据加载为单个批处理。同一SqlBulkCopy实例上的任何后续WriteToServer操作都使用新的BatchSize。基于这些信息,我倾向于认为,如果将批处理大小设置为10k行,而您提供了12k+行,则会创建多个批处理。