Aracılığıyla paylaş


küme NUMERIC_ROUNDABORT (Transact-SQL)

Deyimde Yuvarlama Duyarlığı kaybına neden olur, döndürülen hata raporlama düzeyini belirtir.

Topic link iconTransact-SQL sözdizimi kuralları

SET NUMERIC_ROUNDABORT { ON | OFF } 

Remarks

küme NUMERIC_ROUNDABORT AÇıK olduğunda, bir ifade içinde duyarlılık kaybı gerçekleştikten sonra bir hata oluşturulur.KAPALı, duyarlık zararlar değil oluşturduğunuzda hata iletileri ve sonucu yuvarlanan sonucu depolanacağı değişken ya da sütun duyarlığını.

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

küme NUMERIC_ROUNDABORT AÇıK ise, küme ARITHABORT oluşturulan hatasının önem belirler.Bu tablo, bu iki ayar duyarlılık kaybı, etkilerini oluşur gösterir.

Ayarı

küme numeric_roundabort EDER

küme numeric_roundabort DEVRE DIŞI

küme ARITHABORT EDER

Hata oluşturulur; hiçbir sonuç kümesi döndürdü.

Hiçbir hata veya uyarılarla; sonuç yuvarlanır.

küme ARITHABORT DEVRE DIŞI

Uyarı verilir; ifade NULL döndürüyor.

Hiçbir hata veya uyarılarla; sonuç yuvarlanır.

küme NUMERIC_ROUNDABORT ayarını ayarlayın yürütmek veya saat ve çözümleme saat değil.

Oluştururken veya hesaplanmış sütunları ya da dizin oluşturulmuş görünümler dizinleri değiştirme küme NUMERIC_ROUNDABORT KAPALı olması gerekir.küme NUMERIC_ROUNDABORT AÇıK ise, dizinleriyle hesaplanan sütunlar veya dizin oluşturulmuş görünümler tabloları CREATE, UPDATE, INSERT ve DELETE deyimlerini başarısız olur.Hesaplanmış bir sütun üzerinde dizin oluşturulmuş görünümler ve dizinler gerekli küme seçenek ayarları hakkında daha fazla bilgi için "Konuları, size kullan küme Statements" konusuna bakın. küme (Transact-SQL).

İzinler

Üyelik gerektirir Ortak roldür.

Örnekler

Aşağıdaki örnek, iki değeri ile bir eklenen ve iki ondalık basamakla bir duyarlılığa ile bir değişken depolanan dört ondalık basamak duyarlığı gösterir.Ifadeler farklı etkisini gösterir. 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