Solo ten cuidado, @@error detecta el
ultimo, por lo que no puede funcionar como esperas. Por ejemplo algo tan simple como:
INSERT INTO tabla VALUES (1,2,3)
IF @@Error <> 0
PRINT @@Error
ELSE
PRINT 'Todo OK'
En caso de que ocurra un error la salida de print será "0" (cero), el por que es que el "IF @@Error <> o" es otra instruccion que tambien puede producir errores.
El primer @@Error correspondería al del INSERT, pero al ejecutar el IF el valor de @@Error se sobreescribe por el resultado del IF, de manera que como el IF no falla @@Error vale 0 (que es lo que muestra en pantalla)
Espero no haberte revuelto mucho