因爲我是新手我想退出與我編寫存儲過程中可能出現的任何錯誤。我理解SQL 2005中的Try/Catch和error_procedure(),ERROR_MESSAGE()以及其他內置函數。我無法弄清楚如何做的是捕獲什麼記錄導致更新錯誤。使用try/catch語句進行更新
我大概可以使用一個遊標循環並同時更新一行。然後在循環中設置一個值並報告該值。但是這似乎破壞了使用SQL的目的。
在哪裏研究這個問題,不勝感激任何意見或指針。我不完全理解RowNumber()能以某種方式使用它嗎?在這裏抓秸稈。
歡呼聲和感謝
鮑勃
我使用SQL 2005
編輯
我真的不希望使用交易對於大多數的這一點,因爲它僅僅是報告目的。所以我正在做的一個例子是:
/******************************************************************************
Now get update the table with the current worker. That depends on the
current status of the loan.
******************************************************************************/
UPDATE #table SET currWorker = tblUser.UserLogonName
FROM tblUser
JOIN tblLoanInvolvement ON tblLoanInvolvement.invlUnderwriterDeptID = tblUser.userID
WHERE tblLoanInvolvement.LOANid = #table.loanid
AND #table.currstatus in('R_UW_Approved','R_Submitted to Underwriting')
UPDATE #table SET currWorker = tblUser.UserLogonName
FROM tblUser
JOIN tblLoanInvolvement ON tblLoanInvolvement.invlProcessorID = tblUser.userID
WHERE tblLoanInvolvement.LOANid = #table.loanid
AND #table.currstatus in('R_UW Approved With Conditions','R_Loan Resubmitted','R_UW_Suspended','R_Submitted to Processing')
UPDATE #table SET currWorker = tblUser.UserLogonName
FROM tblUser
JOIN tblLoanInvolvement ON tblLoanInvolvement.invlCloserID = tblUser.userID
WHERE tblLoanInvolvement.LOANid = #table.loanid
AND #table.currstatus in('R_Docs Out','R_Ready to Close','R_Scheduled to Close and Fund','Scheduled To Close')
所以如果一行沒有正確更新,我不想失去整個事情。但是知道導致問題的#table.loanid的價值將非常方便。
謝謝你的時間。
謝謝Paul,我想我會這麼做的。我很難第一次描述這個問題,再次感謝您的回覆。 – 2008-12-10 21:39:13