Schlechte Praxis, um die Verwendung von SQL Server ist GOTO für die Fehlerbehandlung?

Las ich über die Fehlerbehandlung in SQL Server in dieser Artikel, und Sie schlagen vor, mithilfe von SQL Server-SPRINGEN in bestimmten Situationen zum Rollback der Transaktion. Beispiel:

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

Dieser Artikel wurde geschrieben vor fast 10 Jahren, und ich habe gehört, dass es in der Regel eine schlechte Idee, verwenden Sie GOTO. Ist das oben eine ok-Methode für die Fehlerbehandlung in SQL Server? Wenn nicht, kann jemand empfehlen, eine bessere alternative?

InformationsquelleAutor Abe Miessler | 2012-06-21
Schreibe einen Kommentar