2 Stimmen

Tabelle in SQL Server-Transaktion ändern

Ich versuche, diese Transaktion zu schreiben, wo ich versuche, eine Spalte zu einer Tabelle mit TRY..CATCH und TRANSACTION hinzuzufügen. Hier ist mein Code. Aber das Problem ist, dass die Spalte bereits in der Tabelle vorhanden ist und der Catch-Block ausgeführt werden sollte, aber der Catch-Block wird nicht ausgeführt und die Transaktion wird nicht zurückgerollt und auch die select error_number-Anweisung wird nicht ausgeführt.

BEGIN TRY
    BEGIN TRANSACTION;
        ALTER TABLE ONADJ ADD BR_INIT CHAR (3) NULL REFERENCES BRANCH(BR_INIT)
    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    SELECT ERROR_NUMBER() AS ERRORNUMBER,ERROR_MESSAGE() AS ERRORMESSAGE;

    IF (XACT_STATE()) = -1
    BEGIN
        PRINT
            N'THE TRANSACTION IS IN AN UNCOMMITTABLE STATE. ROLLING BACK TRANSACTION.'
        ROLLBACK TRANSACTION;
    END;

    IF (XACT_STATE()) = 1
    BEGIN
        PRINT
            N'THE TRANSACTION IS COMMITTABLE. COMMITTING TRANSACTION.'
        ROLLBACK TRANSACTION;   
    END;
END CATCH

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X