[英]How to catch exception in BCP process in SQL Server 2008?
我在SQL Server 2008中使用bcp。
在某些文本文件中,数据类型中存在错误,因此我在输出结果中收到错误消息,但这不会引发catch块中的任何异常
样品:
set @cmd='BCP In'
declare @xpcmdResult int
EXEC @xpcmdResult=xp_cmdShell @cmd
@xpcmdResult
应根据bcp进程成功得到o或1
BCP不会以您期望的方式设置其返回代码。 如果没有将返回码设置为1,BCP命令可能会以多种方式失败。
我发现检测BCP错误的最可靠方法是解析文本“错误”或“警告”的STDOUT,因为这些中的任何一个都可以在没有将返回码设置为1的情况下输出。
正如Pondlife所提到的,如果您可以选择使用BULK INSERT
那么请使用它。
当BULK INSERT或OPENROWSET更容易使用时,为什么使用xp_cmdshell? 然后你拥有TSQL中的所有东西,所以你应该能够捕获异常。 您还应该查看批量导入数据的一般准则 。
另一种方法是使用SSIS,但如果您只是导入单个文本文件,那可能会有点过分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.