如果发生错误,仅创建BCP错误文件

时间:2017-05-27 17:50:50

标签: sql-server bcp

使用bcp,我将文件导入SQL Server。我正在使用错误文件参数-e errorfilename.txt,但即使没有错误,也会为每个bcp运行创建此文件。如果出现实际错误,是否只能编写错误文件?

1 个答案:

答案 0 :(得分:1)

显然这是-e选项的工作方式; feature_selection说:

  

-e err_file指定用于存储bcp实用程序无法从文件传输到的任何行的错误文件的完整路径   数据库。来自bcp命令的错误消息转到工作站   用户。 如果未使用此选项,则不会创建错误文件

因此,似乎防止创建错误文件的唯一方法是避免使用-e选项,但这不是您想要的。

作为一种解决方法,您可以使用Powershell运行bcp并在bcp命令完成后删除所有空文件。例如:

$yourPath="F:\bcp_error"
bcp YOUR_DB.YOUR_SCHEMA.YOUR_TABLE in F:\BCP\data_file_1.bcp -c -T -e $yourPath\errorfilename_1.txt
bcp YOUR_DB.YOUR_SCHEMA.YOUR_TABLE in F:\BCP\data_file_2.bcp -c -T -e $yourPath\errorfilename_2.txt
bcp YOUR_DB.YOUR_SCHEMA.YOUR_TABLE in F:\BCP\data_file_n.bcp -c -T -e $yourPath\errorfilename_n.txt
Get-ChildItem -Path $yourPath | where {$_.length -eq 0} | remove-Item