Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base 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 ARITHIGNOREesOFF, y el resultado de la operación aritmética esNULL.OFFSET ANSI_WARNINGSSET ARITHABORT - Si tanto
SET ARITHABORTsonOFFSET ANSI_WARNINGScomo ocurre un error aritmético, no aparece un mensaje de advertencia siSET ARITHIGNOREesON, y el resultado de la operación aritmética esNULL.
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;