Поскольку я новичок, я пытаюсь выйти из системы с любыми ошибками, которые могут возникнуть в хранимых процедурах, которые я пишу. Я понимаю Try / Catch в SQL 2005 и error_procedure (), ERROR_MESSAGE () и другие встроенные функции. То, что я не могу понять, как это сделать, это захватить, какая запись вызвала ошибку обновления.
Я мог бы, вероятно, использовать курсор, проходить и обновлять строку за раз. Затем в цикле установите значение и сообщите об этом значении. Но это, кажется, лишает смысла использование 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, которое вызвало проблему.
Спасибо за ваше время.