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

La SET ARITHIGNORE configuración controla si la consulta devuelve mensajes de error por desbordamiento aritmético o por errores de división por cero. La SET ARITHIGNORE ON configuración suprime los mensajes "Se ha producido división por cero." o "Se ha producido un desbordamiento aritmético."

Convenciones de sintaxis de Transact-SQL

Sintaxis

Sintaxis para bases de datos SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse, SQL en Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Sintaxis para Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)


SET ARITHIGNORE OFF

Comentarios

  • Si tanto y son como ocurre un error aritmético, aparece un mensaje de advertencia cuando SET ARITHIGNORE es OFF, y el resultado de la operación aritmética es NULL.OFFSET ANSI_WARNINGSSET ARITHABORT
  • Si tanto SET ARITHABORT son OFFSET ANSI_WARNINGS como ocurre un error aritmético, no aparece un mensaje de advertencia si SET ARITHIGNORE es ON, y el resultado de la operación aritmética es NULL.

La ARITHIGNORE configuración solo controla si la consulta devuelve un mensaje de error. El SQL Motor de base de datos devuelve NULL un cálculo que implica un desbordamiento o un error de división por cero, independientemente de esta configuración. Esta configuración no afecta a los errores que ocurren durante INSERTlas sentencias , UPDATE, y DELETE .

Si o SET ARITHABORTSET ARITHIGNORE es OFF, y SET ANSI_WARNINGS es ON, la consulta sigue devolviendo un mensaje de error cuando encuentra errores de división por cero o de desbordamiento. Cuando ANSI_WARNINGS es ON (el valor por defecto), el ajuste de ARITHABORT no tiene efecto funcional.

El valor de se establece en tiempo de SET ARITHIGNORE ejecución o ejecución y no en tiempo de análisis.

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

Ver configuración actual de ARITHIGNORE

Para ver la configuración actual de ARITHIGNORE, ejecuta la siguiente consulta T-SQL.

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

Permisos

Debe pertenecer al rol public .

Ejemplos

El siguiente ejemplo demuestra el uso de ambos SET ARITHIGNORE ajustes con ambos tipos de errores de consulta: división por cero y desbordamiento aritmético.

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)

El siguiente ejemplo demuestra los errores de división por cero y de desbordamiento. Este ejemplo no devuelve un mensaje de error para estos errores porque ARITHIGNORE es OFF.

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