首页 > 解决方案 > 自动截断 SQL 中的值

问题描述

我收到一个错误,因为我的存储过程试图将一个 12 位小数的值插入到仅允许 6 个小数位的字段中。我意识到我可以在尝试将值输入表格之前对其进行四舍五入。但是,存储过程有数百次计算,我试图避免遍历和舍入每个实例。

类似于 SQL 表如何忽略重复而不抛出错误,表是否可以自动截断小数而不抛出错误?

编辑:正如 Jeroen Mostert 在评论中所解释的那样,该错误与不适合允许的十进制字符总数的数字有关,而不是与小数点本身有关。例如,我decimal(18,6)对小数点后 10 位并不不满,而是对超过 18 个字符的数字不满意。

我没有危险地忽略算术错误,而是编写了一个脚本,以避免在程序尝试运行之前将错误数据输入到程序中,这样这些过大的值就不会引发错误。理想的解决方案是使用 try catch(或具有该容量的东西),但不幸的是,在这个漫长而长期建立的过程中,这不是一个选项。

标签: sqlsql-servertsql

解决方案


推荐阅读