set NUMERIC_ROUNDABORT (Transact-sql)

Bir ifade yuvarlama duyarlık kaybına neden olduğunda oluşturulan hata raporlama düzeyini belirtir.

Konu bağlantısı simgesi 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

Ayrıca bkz.

Başvuru

Veri Türleri (Transact-SQL)

Deyimiyle (Transact-sql) bırak

set ARITHABORT (Transact-sql)