我正在处理非常大的分隔文件。这些文件已经进行了预处理,以确保字段和行定界符是有效的。偶尔会处理一个未能满足TSQL约束的行(通常是数据类型问题)。在这种情况下,“修复”输入数据不是一个选项。
我们使用 MAXERRORS 设置可接受的输入错误数量,并使用 ERRORFILE 记录失败的行。
批量插入在 SSMS 中完成,对于每个失败的行,在消息窗口记录严重级别为 16 的错误消息。尝试通过 C# SqlCommand 类执行此代码时,当生成第一个严重级别为 16 的错误消息时,将引发异常,导致批次失败。
是否有一种方法可以通过 C# 和类似 SqlCommand 的方式完成操作并忽略 SQL 错误消息?
示例命令:
我们使用 MAXERRORS 设置可接受的输入错误数量,并使用 ERRORFILE 记录失败的行。
批量插入在 SSMS 中完成,对于每个失败的行,在消息窗口记录严重级别为 16 的错误消息。尝试通过 C# SqlCommand 类执行此代码时,当生成第一个严重级别为 16 的错误消息时,将引发异常,导致批次失败。
是否有一种方法可以通过 C# 和类似 SqlCommand 的方式完成操作并忽略 SQL 错误消息?
示例命令:
BULK INSERT #some-table FROM 'filename'
WITH(FIELDTERMINATOR ='\0',ROWTERMINATOR ='\n',FIRSTROW = 2, MAXERRORS = 100, ERRORFILE = 'some-file')