SET ARITHIGNORE (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

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

Convenciones de sintaxis de Transact-SQL

Sintaxis

-- Syntax for SQL Server and Azure SQL Database and Microsoft Fabric

SET ARITHIGNORE { ON | OFF }
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  

SET ARITHIGNORE OFF

Nota:

El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Comentarios

La SET ARITHIGNORE configuración 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 SETSET ARITHABORT configuración puede usarse para determinar si la consulta está terminada. Esta configuración no afecta a los errores que ocurren durante INSERTlas sentencias , UPDATE, y DELETE .

Si uno de los SET ARITHABORT dos SETSET ARITHIGNORE está OFF y SETSET ANSI_WARNINGS ON (ACTIVADO), SQL Server sigue devolviendo un mensaje de error al encontrar errores de división por cero o de desbordamiento.

El valor de se establece en tiempo de SET ARITHIGNORE ejecución o ejecución y 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;  

Permisos

Debe pertenecer al rol public.

Ejemplos

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  

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

En el siguiente ejemplo se muestran los errores de división entre cero y de desbordamiento. Este ejemplo no devuelve un mensaje de error para estos errores porque ARITHIGNORE está OFF.

-- SET ARITHIGNORE OFF and testing.  
SET ARITHIGNORE OFF;  
SELECT 1 / 0 AS DivideByZero;  
SELECT CAST(256 AS TINYINT) AS Overflow;  

Consulte también

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