Я пытаюсь проверить результат, когда ARITHABORT и ANSI_WARINGS включены на уровне совместимости 80 и уровне совместимости 140. Я использую TRY - CATCH, чтобы также перехватывать ошибки домена.Результат отличается на двух уровнях.На уровне совместимости 80 условия ошибки приводят к завершению запроса, и предложение CATCH не выполняется.На уровне совместимости 140 условия ошибки приводят к завершению запроса и выполнению предложения CATCH.
Можете ли вы объяснить, почему они отличаются по двум уровням совместимости?
Это мой код:
SET ARITHABORT ON
SET ANSI_WARNINGS ON
BEGIN TRY
SELECT SQRT(-1)
PRINT N'OSQL Success'
END TRY
BEGIN CATCH
PRINT N'OSQL Failure'
END CATCH