Behavior When ARITHABORT and ARITHIGNORE Are Set to ON
If both the ARITHABORT and ARITHIGNORE query-processing options are set to ON, ARITHABORT takes precedence.
ARITHABORT and ARITHIGNORE are two distinct options; setting one to ON does not automatically set the other to OFF. For example, if an application contains the following statements, both options are set to ON:
SET ARITHABORT ON
SET ARITHIGNORE ON
GO
When a SET statement is executed in a stored procedure, the new setting is active only until the procedure is completed. When the procedure is completed, the connection's setting for that option will go back to what it was before the procedure was executed.
Effect of ANSI_WARNINGS Setting
The ANSI_WARNINGS setting affects query processor behavior regardless of the current settings of ARITHABORT and ARITHIGNORE.
For example, if SET ARITHABORT or SET ARITHIGNORE is set to OFF and SET ANSI_WARNINGS is set to ON, Microsoft SQL Server will still return an error message when it encounters divide-by-zero or overflow errors.
This table summarizes the behavior.
ARITHABORT |
ANSI_WARNINGS |
Behavior |
---|---|---|
ON |
ON |
Abort statement only. |
ON |
OFF |
Abort batch. |
OFF |
ON |
Abort statement only. |
OFF |
OFF |
Continue; value is NULL. |