• @@Error reports the error from the line directly before it. One of the issues with it is the severity of the error. If it is 16, then you will get an error and the @@Error variable or code where you are trying to capture it will get skipped and SQL will just quit. With Try/Catch this behavior is different. You can catch all the errors in this block (even severity 16)

    For better, quicker answers, click on the following...
    http://www.sqlservercentral.com/articles/Best+Practices/61537/

    For better answers on performance questions, click on the following...
    http://www.sqlservercentral.com/articles/SQLServerCentral/66909/