set NUMERIC_ROUNDABORT (Transact-SQL)
Hata bir ifade Yuvarlama Duyarlığı kaybına neden olduğunda oluşturulan raporlama düzey belirtir.
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
Ayrıca bkz.