SET ARITHIGNORE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Pengaturan mengontrol SET ARITHIGNORE apakah kueri mengembalikan pesan kesalahan untuk kemeluapan aritmatika atau kesalahan bagi dengan nol. Pengaturan ini SET ARITHIGNORE ON menekan pesan "Terjadi pembagian dengan nol." atau "Terjadi luapan aritmatika."

Konvensi sintaks transact-SQL

Sintaksis

Sintaks untuk database SQL Server, Azure SQL Database, Microsoft Fabric Data Warehouse, SQL di Microsoft Fabric


SET ARITHIGNORE { ON | OFF }

Sintaks untuk Azure Synapse Analytics dan Analytics Platform System (PDW)


SET ARITHIGNORE OFF

Keterangan

  • Jika keduanya SET ARITHABORT dan SET ANSI_WARNINGS are OFF dan terjadi kesalahan aritmatika, pesan peringatan muncul ketika SET ARITHIGNORE is OFF, dan hasil operasi aritmatika adalah NULL.
  • Jika keduanya SET ARITHABORT dan SET ANSI_WARNINGS are OFF dan kesalahan aritmatika terjadi, pesan peringatan tidak muncul jika SET ARITHIGNORE is ON, dan hasil operasi aritmatika adalah NULL.

Pengaturan ARITHIGNORE hanya mengontrol apakah kueri mengembalikan pesan kesalahan. SQL Database Engine mengembalikan NULL dalam perhitungan yang melibatkan kesalahan overflow atau divide-by-zero, terlepas dari pengaturan ini. Pengaturan ini tidak memengaruhi kesalahan yang terjadi selama INSERTpernyataan , UPDATE, dan DELETE .

Jika salah satu SET ARITHABORT atau SET ARITHIGNORE adalah OFF, dan SET ANSI_WARNINGS adalah ON, kueri masih mengembalikan pesan kesalahan saat menemukan kesalahan divide-by-zero atau overflow. Ketika ANSI_WARNINGS ( ON default), pengaturan tidak ARITHABORT memiliki efek fungsional.

Pengaturan SET ARITHIGNORE diatur pada waktu eksekusi atau run time dan bukan pada waktu penguraian.

Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Lihat pengaturan saat ini ARITHIGNORE

Untuk melihat pengaturan ARITHIGNOREsaat ini , jalankan kueri T-SQL berikut.

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

Izin

Memerlukan keanggotaan dalam peran publik .

Contoh

Contoh berikut menunjukkan penggunaan kedua SET ARITHIGNORE pengaturan dengan kedua jenis kesalahan kueri: divide-by-zero dan arithmetic overflow.

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  

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

Contoh berikut menunjukkan kesalahan divide-by-zero dan overflow. Contoh ini tidak mengembalikan pesan kesalahan untuk kesalahan ini karena ARITHIGNORE adalah OFF.

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