Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 仅在发生错误时创建BCP错误文件_Sql Server_Bcp - Fatal编程技术网

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