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?
- Haben Sie dieses Antwort?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie mit Hilfe Try/Catch in SQL 2005+
Müssen Sie integrieren
SET XACT_ABORT ON
imException handling