SET NUMERIC_ROUNDABORT 的设置是在执行或运行时设置,而不是在分析时设置。 比如: -- 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
数据库:ALTER DATABASE dbname SET NUMERIC_ROUNDABORT OFF
比如:
-- 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