set NUMERIC_ROUNDABORT (Transact-SQL)

Hata bir ifade Yuvarlama Duyarlığı kaybına neden olduğunda oluşturulan raporlama düzey belirtir.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

SET NUMERIC_ROUNDABORT { ON | OFF } 

Açıklamalar

set NUMERIC_ROUNDABORT on olarak ayarlandığında, bir ifadeduyarlılık kaybı oluştuktan sonra bir hata oluşturulur.off, zararları duyarlık vermediği zaman hata iletileri ve sonucu yuvarlak sütun veya değişken sonucu depolamak duyarlığını.

Bir sütun ya da daha az duyarlık değişkenle değeri sabit bir duyarlılığa sahip depolamak için çalışıldığında duyarlılık kaybı oluşur.

set ARITHABORT set NUMERIC_ROUNDABORT açık ise, hatanın önem derecesini oluşturulan belirler.Duyarlılık kaybı ortaya çıktığında bu tablo bu iki ayar etkilerini gösterir.

Ayarı

SET NUMERIC_ROUNDABORT AÇIK

SET NUMERIC_ROUNDABORT KAPALI

SET ARITHABORT ON

Hata oluşturulur; döndürülen yok sonuç kümesi .

Herhangi bir hata veya uyarılar; sonuç yuvarlanır.

SET ARITHABORT

Uyarı verilir; ifade null döndürür.

Herhangi bir hata veya uyarılar; sonuç yuvarlanır.

set NUMERIC_ROUNDABORT ayarı yürütmek sırasında küme veya çalışma saat ve ayrıştırma saatzaman.

Oluştururken veya dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler değiştirme set NUMERIC_ROUNDABORT kapalı olması gerekir.Dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler ile tablolar oluşturma, update, INSERT ve delete deyimlerini set NUMERIC_ROUNDABORT açık ise, başarısız olur."Değerlendirmeleri yaparken, kullanım AYARLAMAK Statements" hesaplanan sütunlar üzerinde dizin oluşturulmuş görünümler ve dizinler ile gerekli set seçenek ayarları hakkında daha fazla bilgi için bkz: in set seçenekleri (Transact-SQL).

İzinler

Üyelik gerektiren ortak rolü.

Örnekler

Aşağıdaki örnek, iki değerleri eklenen ve iki ondalık basamak kesinliğinde bir değişken depolanan dört ondalık basamak kesinliğinde gösterir.İfadeleri farklı etkilerini göstermek SET NUMERIC_ROUNDABORT ve SET ARITHABORT ayarlar.

-- SET NOCOUNT to ON, 
-- SET NUMERIC_ROUNDABORT to ON, and SET ARITHABORT to ON.
SET NOCOUNT ON
PRINT 'SET NUMERIC_ROUNDABORT ON'
PRINT 'SET ARITHABORT ON'
SET NUMERIC_ROUNDABORT ON
SET ARITHABORT ON
GO
DECLARE @result DECIMAL(5, 2),
   @value_1 DECIMAL(5, 4), 
   @value_2 DECIMAL(5, 4)
SET @value_1 = 1.1234
SET @value_2 = 1.1234 
SELECT @result = @value_1 + @value_2
SELECT @result
GO

-- SET NUMERIC_ROUNDABORT to ON and SET ARITHABORT to OFF.
PRINT 'SET NUMERIC_ROUNDABORT ON'
PRINT 'SET ARITHABORT OFF'
SET NUMERIC_ROUNDABORT ON
SET ARITHABORT OFF
GO
DECLARE @result DECIMAL(5, 2),
   @value_1 DECIMAL(5, 4), 
   @value_2 DECIMAL(5, 4)
SET @value_1 = 1.1234
SET @value_2 = 1.1234 
SELECT @result = @value_1 + @value_2
SELECT @result
GO

-- SET NUMERIC_ROUNDABORT to OFF and SET ARITHABORT to ON.
PRINT 'SET NUMERIC_ROUNDABORT OFF'
PRINT 'SET ARITHABORT ON'
SET NUMERIC_ROUNDABORT OFF
SET ARITHABORT ON
GO
DECLARE @result DECIMAL(5, 2),
   @value_1 DECIMAL(5, 4), 
   @value_2 DECIMAL(5, 4)
SET @value_1 = 1.1234
SET @value_2 = 1.1234 
SELECT @result = @value_1 + @value_2
SELECT @result
GO

-- SET NUMERIC_ROUNDABORT to OFF and SET ARITHABORT to OFF.
PRINT 'SET NUMERIC_ROUNDABORT OFF'
PRINT 'SET ARITHABORT OFF'
SET NUMERIC_ROUNDABORT OFF
SET ARITHABORT OFF
GO
DECLARE @result DECIMAL(5, 2),
   @value_1 DECIMAL(5, 4), 
   @value_2 DECIMAL(5, 4)
SET @value_1 = 1.1234
SET @value_2 = 1.1234 
SELECT @result = @value_1 + @value_2
SELECT @result
GO