Stavo leggendo sulla gestione degli errori in SQL Server in this article e suggeriscono di utilizzare GOTO di SQL Server in determinate situazioni per eseguire il rollback della transazione. Esempio:Non è consigliabile utilizzare GOTO di SQL Server per la gestione degli errori?
BEGIN TRAN
UPDATE Authors
SET Phone = '415 354-9866'
WHERE au_id = '724-80-9391'
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
UPDATE Publishers
SET city = 'Calcutta', country = 'India'
WHERE pub_id = '9999'
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
COMMIT TRAN
PROBLEM:
IF (@intErrorCode <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
END
Questo articolo è stato scritto quasi 10 anni fa, e ho sentito che di solito è una cattiva idea di usare GOTO. Il metodo sopra è ok per la gestione degli errori in SQL Server? Se no, qualcuno può suggerire un'alternativa migliore?
Hai controllato questo [risposta] (http://stackoverflow.com/a/ 11153012/1451723)? – Pankaj