在SQL Server中,我们可以设置它是否在默认情况下舍入或截断?

时间:2015-05-08 17:26:12

标签: sql sql-server decimal

我在我的程序中编写了大量插入和更新,涉及金钱,而且我遇到了一个严重的舍入错误。大多数情况下,我想截断值,而不是SQL Server默认的舍入。

我可以在列级别设置此方法,而不是更改所有现有代码吗?表级别?服务器级别?

编辑:对不起,列类型是小数(10,2)。示例:我想输入100.555,并将其保存为100.55或100.56,因为它目前正在进行。

1 个答案:

答案 0 :(得分:1)

除了修复代码或为您的批次调用SET ARITH_ABORT ON之外,您没有其他选择。

即使你打电话给SET ARIGHT_ABORT ON,它也只会在出现溢出的情况下引发错误,并且不会抱怨精度/等级的丢失(例如当有效数字为0时)。默认行为是舍入。

decimal and numeric (Transact-SQL)