Sql server 仅在发生错误时创建BCP错误文件
使用Sql server 仅在发生错误时创建BCP错误文件,sql-server,bcp,Sql Server,Bcp,使用bcp,我正在将一个文件导入SQL Server。我正在使用错误文件参数-e errorfilename.txt,但即使没有错误,也会为每次运行bcp创建此文件。有没有办法只在出现实际错误时写入错误文件?显然这就是-e选项的工作原理;说: -eerr_file指定错误文件的完整路径,该文件用于存储bcp实用程序无法从文件传输到服务器的任何行 数据库来自bcp命令的错误消息将发送到的工作站 用户如果未使用此选项,则不会创建错误文件 因此,防止创建错误文件的唯一方法似乎是避免使用-e选项,但这不
bcp
,我正在将一个文件导入SQL Server。我正在使用错误文件参数-e errorfilename.txt
,但即使没有错误,也会为每次运行bcp
创建此文件。有没有办法只在出现实际错误时写入错误文件?显然这就是-e
选项的工作原理;说:
-eerr_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