2014-03-30 24 views
0

我的存儲過程接受xml數據,可從這個xml數據生成的行數是未知的正手。使用@@錯誤和存儲過程中@@行數

在此我需要處理的事務此xml數據保存到一個表時。我不能用@@rowcount檢查刀片是否成功,因爲在xml插入所有行一次。因此我唯一的選擇是@@error。假設xml包含10行數據,如果一個記錄無法插入會@@error檢測呢?

謝謝

回答

1

不知道實際的INSERT,但總的來說答案是肯定的。如果它是單個語句並且出錯,則在回滾之後不會插入行;否則它取決於你的錯誤處理代碼。

我推薦使用TRY .. CATCH來處理錯誤,而不是@@ ERROR功能。

有一個關於在SQL Server錯誤處理一個很好的文章厄蘭Sommarskog你應該閱讀:

http://www.sommarskog.se/error-handling-I.html#batchabort1

而較新的一個,以及:

http://sommarskog.se/error_handling_2005.html