繁体   English   中英

如何在SQL Server 2008中捕获BCP进程中的异常?

[英]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 INSERTOPENROWSET更容易使用时,为什么使用xp_cmdshell? 然后你拥有TSQL中的所有东西,所以你应该能够捕获异常。 您还应该查看批量导入数据的一般准则

另一种方法是使用SSIS,但如果您只是导入单个文本文件,那可能会有点过分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM