@@ ERROR и / или TRY - CATCH
Будет ли Try-Catch регистрировать все ошибки, которые может @@ ERROR? В следующем фрагменте кода стоит проверить наличие @@ ERROR? Произойдет ли возврат 1111 когда-нибудь?
SET XACT_ABORT ON
BEGIN TRANSACTION
BEGIN TRY
--do sql command here <<<<<<<<<<<
SELECT @Error=@@ERROR
IF @Error!=0
BEGIN
IF XACT_STATE()!=0
BEGIN
ROLLBACK TRANSACTION
END
RETURN 1111
END
END TRY
BEGIN CATCH
IF XACT_STATE()!=0
BEGIN
ROLLBACK TRANSACTION
END
RETURN 2222
END CATCH
IF XACT_STATE()=1
BEGIN
COMMIT
END
RETURN 0