Aracılığıyla paylaş


ARITHIGNORE (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Sorgu sırasında hata mesajlarının taşmadan mı yoksa sıfıra böl hatalarından mı döneceğini kontrol eder.

Transact-SQL söz dizimi kuralları

Sözdizimi

-- 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

Uyarı

Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Açıklamalar

SET ARITHIGNORE ayarı yalnızca hata mesajının geri dönüyeceğini kontrol eder. SQL Server, bu ayar ne olursa olsun taşma veya sıfıra böl hatası içeren bir hesaplamada NULL döndürür. SET ARITHABORT ayarı, sorgunun sonlandırılıp sonlandırılmadığını belirlemek için kullanılabilir. Bu ayar, INSERT, UPDATE ve DELETE ifadeleri sırasında meydana gelen hataları etkilemez.

SET ARITHABORT veya SET ARITHIGNORE KAPALI ve SET ANSI_WARNINGS AÇIKSA, SQL Server sıfıra bölme veya taşma hatalarıyla karşılaştığında yine bir hata mesajı döndürür.

SET ARITHIGNORE ayarı yürütme veya çalışma zamanında ayarlanır, ayrıştırma zamanında değil.

Bu ayarın mevcut ayarını görmek için aşağıdaki sorguyu çalıştırın.

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

Permissions

Genel rolde üyelik gerektirir.

Örnekler

Aşağıdaki örnek, her iki SET ARITHIGNORE ayarın da her iki tür sorgu hatasıyla kullanıldığını göstermektedir.

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  

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

Aşağıdaki örnek, sıfıra bölünmeyi ve taşma hatalarını gösterir. Bu örnek, ARITHIGNORE KAPALı olduğu için bu hatalar için hata mesajı vermez.

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

Ayrıca Bkz.

SET Deyimleri (Transact-SQL)
ARITHABORT SETI (Transact-SQL)