Using an explicit commit in a transaction

Is there a difference in adding explicit committo mine transactionthan automatic commit.

CREATE TABLE #test (test_col INT) 

With explicit COMMIT

INSERT #test
VALUES (11)

BEGIN TRY
    BEGIN TRAN DELETE_TRAN

    DELETE FROM #test

    COMMIT TRAN DELETE_TRAN
END TRY

BEGIN CATCH
    ROLLBACK TRAN DELETE_TRAN

    SELECT ERRORMESSAGE = Error_message()
END CATCH

SELECT *
FROM   #test

Without explicit commit

INSERT #test
VALUES (11)

BEGIN TRY
    BEGIN TRAN DELETE_TRAN

    DELETE FROM #test
END TRY

BEGIN CATCH
    ROLLBACK TRAN DELETE_TRAN

    SELECT ERRORMESSAGE = Error_message()
END CATCH

SELECT *
FROM   #test 

Here both do the same. Can anyone tell if there is any difference or advantage over each other.

+4
source share
2 answers

, , , , COMMIT , , ( temp ) SELECT . SELECT , (, WITH (NOLOCK) ..) , COMMIT.

- , , , , , - TRAN . , . .

, TRAN, SQL, , COMMIT TRAN. , SQL , TRAN COMMIT, TRAN ROLLBACK.

+3

, , , , : SQL Server -

-1

Source: https://habr.com/ru/post/1630047/


All Articles