Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Controla se as mensagens de erro são retornadas por erro de overflow ou de divisão por zero durante uma consulta.
Transact-SQL convenções de sintaxe
Sintaxe
-- 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
Observação
Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Observações
A definição SET ARITHIGNORE apenas controla se uma mensagem de erro é devolvida. O SQL Server devolve um NULL num cálculo que envolve um erro de overflow ou divisão por zero, independentemente desta definição. A definição SET ARITHABORT pode ser usada para determinar se a consulta está terminada. Esta configuração não afeta erros que ocorrem durante as instruções INSERT, UPDATE e DELETE.
Se SET ARITHABORT ou SET ARITHIGNORE estiverem DESLIGADOS e SET ANSI_WARNINGS estiver LIGADO, o SQL Server ainda devolve uma mensagem de erro ao encontrar erros de divisão por zero ou de overflow.
A definição de SET ARITHIGNORE é definida em tempo de execução ou execução e não em tempo de análise sintática.
Para visualizar a definição atual desta definição, execute a seguinte consulta.
DECLARE @ARITHIGNORE VARCHAR(3) = 'OFF';
IF ( (128 & @@OPTIONS) = 128 ) SET @ARITHIGNORE = 'ON';
SELECT @ARITHIGNORE AS ARITHIGNORE;
Permissions
Requer a participação na função pública.
Examples
O exemplo seguinte demonstra o uso de ambas SET ARITHIGNORE as definições com ambos os tipos de erros 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
Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)
O exemplo seguinte demonstra a divisão por zero e os erros de transbordamento. Este exemplo não devolve uma mensagem de erro para estes erros porque o ARITHIGNORE está DESLIGADO.
-- SET ARITHIGNORE OFF and testing.
SET ARITHIGNORE OFF;
SELECT 1 / 0 AS DivideByZero;
SELECT CAST(256 AS TINYINT) AS Overflow;