@@ ERROR i / lub TRY - CATCH

Czy spróbuj złapać wszystkie błędy, które może spowodować błąd @@? Czy w poniższym fragmencie kodu warto sprawdzić, czy @@ ERROR? Czy kiedykolwiek nastąpi POWRÓT 1111?

SET XACT_ABORT ON
BEGIN TRANSACTION

BEGIN TRY
    --do sql command here  <<<<<<<<<<<

    SELECT @Error=@@ERROR
    IF @Error!=0
    BEGIN
        IF XACT_STATE()!=0
        BEGIN
            ROLLBACK TRANSACTION
        END
        RETURN 1111
    END

END TRY
BEGIN CATCH

    IF XACT_STATE()!=0
    BEGIN
        ROLLBACK TRANSACTION
    END
    RETURN 2222

END CATCH

IF XACT_STATE()=1
BEGIN
    COMMIT
END

RETURN 0

questionAnswers(6)

yourAnswerToTheQuestion