我目前使用SQL Server的本机Bulk Insert程序,从文本文件向数据库中加载多个表。
这一方法已经运作得很好,甚至可以很好地处理截断、空值和格式错误。如果某个列太大、应该为 null 的地方不是 null,或者根据格式文件找到的列数不正确,则会跳过这些行并将其转发到错误文件中。
然而,最近在我的一个文本文件中输入了重复的主键。这导致批量插入失败,没有任何行被转发到错误文件中。
目前,我的批量插入命令如下:
BULK INSERT table.table FROM 'data_file.txt' WITH(
BATCHSIZE = 100000,
CODEPAGE = 1252,
DATAFILETYPE = 'char',
FIRSTROW = 2,
KEEPNULLS,
MAXERRORS = 1000000000,
TABLOCK,
FORMATFILE = 'format_file.txt',
ERRORFILE = 'error_file.txt'
)
使用批量插入,有没有一种处理主键冲突的方法与处理其他错误相同?理想情况下,我希望包含主键冲突的行被转发到同一个错误文件中。