我在我的程序中编写了大量插入和更新,涉及金钱,而且我遇到了一个严重的舍入错误。大多数情况下,我想截断值,而不是SQL Server默认的舍入。
我可以在列级别设置此方法,而不是更改所有现有代码吗?表级别?服务器级别?
编辑:对不起,列类型是小数(10,2)。示例:我想输入100.555,并将其保存为100.55或100.56,因为它目前正在进行。
答案 0 :(得分:1)
除了修复代码或为您的批次调用SET ARITH_ABORT ON
之外,您没有其他选择。
即使你打电话给SET ARIGHT_ABORT ON
,它也只会在出现溢出的情况下引发错误,并且不会抱怨精度/等级的丢失(例如当有效数字为0时)。默认行为是舍入。