簡體   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