SET ARITHIGNORE (Transact-SQL)

 

**ESTE TEMA SE APLICA A:** ![](../Image/Applies%20to/yes.png)SQL Server \(a partir de 2008\) ![](../Image/Applies%20to/yes.png)Base de datos SQL de Azure ![](../Image/Applies%20to/yes.png)Almacenamiento de datos SQL de Azure ![](../Image/Applies%20to/yes.png)Almacenamiento de datos paralelos

Controla si se devuelven mensajes de error al producirse errores de desbordamiento o división por cero durante una consulta.

Se aplica a: de SQL Server (SQL Server 2008 a la versión actual), Base de datos SQL de Azure.

Topic link icon Convenciones de sintaxis de Transact-SQL

  
SET ARITHIGNORE { ON | OFF }  
[ ; ]  

La opción SET ARITHIGNORE solo controla si se devuelve un mensaje de error. SQL Server devuelve NULL en un cálculo en que se invoca un error de desbordamiento o de división por cero con independencia de esta opción. La opción SET ARITHABORT se puede utilizar para determinar si la consulta ha finalizado o no. Esta opción no afecta a los errores producidos al ejecutar las instrucciones INSERT, UPDATE y DELETE.

Si SET ARITHABORT o SET ARITHIGNORE es OFF y SET ANSI_WARNINGS es ON, SQL Server devolverá un mensaje de error cuando haya errores de división por cero o desbordamiento.

La opción SET ARITHIGNORE se establece en tiempo de ejecución, no en tiempo de análisis.

Para ver la configuración actual de este valor, ejecute la consulta siguiente.

DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF';  
IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON';  
SELECT @ARITHIGNORE AS ARITHIGNORE;  
  

Requiere la pertenencia al rol public.

En el ejemplo siguiente se muestran las dos opciones de SET ARITHIGNORE con ambos tipos de errores de consulta.

SET ARITHABORT OFF;  
SET ANSI_WARNINGS OFF  
GO  
  
PRINT 'Setting ARITHIGNORE ON';  
GO  
-- SET ARITHIGNORE ON and testing.  
SET ARITHIGNORE ON;  
GO  
SELECT 1 / 0 AS DivideByZero;  
GO  
SELECT CAST(256 AS TINYINT) AS Overflow;  
GO  
  
PRINT 'Setting ARITHIGNORE OFF';  
GO  
-- SET ARITHIGNORE OFF and testing.  
SET ARITHIGNORE OFF;  
GO  
SELECT 1 / 0 AS DivideByZero;  
GO  
SELECT CAST(256 AS TINYINT) AS Overflow;  
GO  

Instrucciones SET (Transact-SQL)
SET ARITHABORT (Transact-SQL)

Adiciones de comunidad

Mostrar: