SET ARITHIGNORE (Transact-SQL)SET ARITHIGNORE (Transact-SQL)

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Controla si se devuelven mensajes de error al producirse errores de desbordamiento o división por cero durante una consulta.Controls whether error messages are returned from overflow or divide-by-zero errors during a query.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

-- Syntax for SQL Server and Azure SQL Database  

SET ARITHIGNORE { ON | OFF }  
[ ; ]  
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  

SET ARITHIGNORE OFF   
[ ; ]  

ComentariosRemarks

La opción SET ARITHIGNORE solo controla si se devuelve un mensaje de error.The SET ARITHIGNORE setting only controls whether an error message is returned. SQL ServerSQL 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. returns a NULL in a calculation involving an overflow or divide-by-zero error, regardless of this setting. La opción SET ARITHABORT se puede utilizar para determinar si la consulta ha finalizado o no.The SET ARITHABORT setting can be used to determine whether the query is terminated. Esta opción no afecta a los errores producidos al ejecutar las instrucciones INSERT, UPDATE y DELETE.This setting does not affect errors occurring during INSERT, UPDATE, and DELETE statements.

Si SET ARITHABORT o SET ARITHIGNORE es OFF y SET ANSI_WARNINGS es ON, SQL ServerSQL Server devolverá un mensaje de error cuando haya errores de división por cero o desbordamiento.If either SET ARITHABORT or SET ARITHIGNORE is OFF and SET ANSI_WARNINGS is ON, SQL ServerSQL Server still returns an error message when encountering divide-by-zero or overflow errors.

La opción SET ARITHIGNORE se establece en tiempo de ejecución, no en tiempo de análisis.The setting of SET ARITHIGNORE is set at execute or run time and not at parse time.

Para ver la configuración actual de este valor, ejecute la consulta siguiente.To view the current setting for this setting, run the following query.

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

PermissionsPermissions

Debe pertenecer al rol public.Requires membership in the public role.

EjemplosExamples

En el ejemplo siguiente se muestran las dos opciones de SET ARITHIGNORE con ambos tipos de errores de consulta.The following example demonstrates using both SET ARITHIGNORE settings with both types of query errors.

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: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

En el ejemplo siguiente se muestra la división por cero y los errores de desbordamiento.The following example demonstrates the divide by zero and the overflow errors. En este ejemplo no devuelve un mensaje de error para estos errores porque ARITHIGNORE es OFF.This example does not return an error message for these errors because ARITHIGNORE is OFF.

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

Vea tambiénSee Also

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