set NUMERIC_ROUNDABORT (Transact-sql)
Bir ifade yuvarlama duyarlık kaybına neden olduğunda oluşturulan hata raporlama düzeyini belirtir.
Transact-SQL Sözdizim Kuralları
Sözdizimi
SET NUMERIC_ROUNDABORT { ON | OFF }
Açıklamalar
set NUMERIC_ROUNDABORT açık olduğunda, bir ifade duyarlılık kaybı oluştuktan sonra bir hata oluşturulur. off, hassas kayıp değil oluşturduğunuzda hata iletileri ve sonuç yuvarlak sütun veya değişken sonucu depolamak duyarlığını.
Bir sütun veya değişken daha az hassas bir değeri sabit bir hassasiyetle depolamak için bir girişimde duyarlılık kaybı oluşur.
set NUMERIC_ROUNDABORT on set ARITHABORT oluşturulan hata şiddetini belirler. Bu tabloda gösterilmektedir: Bu iki ayarlarınızın duyarlılık kaybı olduğunda oluşur.
Ayarı |
SET NUMERIC_ROUNDABORT TARİH |
KAPALI KÜMESİ NUMERIC_ROUNDABORT |
---|---|---|
SET ARITHABORT ON |
Hata oluşturulur; hiçbir sonuç kümesi döndürülen. |
Hata veya uyarılar; sonuç yuvarlanır. |
SET ARITHABORT KAPALI |
Uyarı verilir; ifade null döndürür. |
Hata veya uyarılar; sonuç yuvarlanır. |
set NUMERIC_ROUNDABORT ayarı ayarlanır yürütme veya zaman değil ayrıştırma saati ve çalıştırın.
Oluşturma veya değiştirme dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler set NUMERIC_ROUNDABORT kapalı olmalıdır. set NUMERIC_ROUNDABORT açık'tır, Oluştur, Güncelleştir, Ekle ve Sil deyimlerinin tablolarda dizinler üzerinde hesaplanan sütunlar veya dizin oluşturulmuş görünümler ile başarısız olur. Hesaplanan sütunlar üzerinde gerekli set seçenek ayarları ile dizinleri ve dizin oluşturulmuş görünümler hakkında daha fazla bilgi için bkz: "Konuları ne zaman sen kullanma set deyimleri" in Deyimiyle (Transact-sql) bırak.
İzinler
Üyelik Genel rolü.
Örnekler
Aşağıdaki örnek, iki değerleri eklenen ve iki ondalık duyarlığını ile bir değişken depolanan dört ondalık basamak duyarlığı ile gösterir. İfadeleri farklı etkileri göstermek SET NUMERIC_ROUNDABORTve SET ARITHABORTayarları.
-- 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
-- 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