• Nothing to do with the transaction. You can't use GO within the TRY.

    GO is not a T-SQL command. It's a batch terminator. It marks where to break the code sent to SQL. With a GO there, you're telling SSMS to send the following as a batch to SQL

    BEGIN TRY

    BEGIN TRAN T1

    Use AdventureWorks

    I'm pretty sure you can agree that the block of code above is not valid.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass