mssql sqlserver 返回将numeric转换为数据类型numeric是出现算术溢出错误


摘要:
今天调试程序时,报出这个错误提示,左思右想怎么也想不通,到底为何原因系统会提示同一类型之间咋会出现转换错误,
先将具体原因记载如下,方便以后遇到同类问题的朋友快速解决此类问题。

出现这个问题,死活都找不到原因时,我们把sql脚本放入查询分析器中,一行一行脚本的阅读,最后才发现,原来
第一个参数定义为 numeric(12,4) 第二个参数类型定义为numeric(12,8)
通过仔细对比发现,第一个参数可以存储的值明显大于第二个参数,把第二个参数修改为同第一个参数数据类型一致后,顺利解决此类问题。

注意事项:
通过这次的事件,我们平时在使用此类型时,
一定要谨记—-numeric(n,m):代表总共有此数据一共有n位(包含小数位),小数位有m位,小数位后面无值时,会自动补零
numeric(12,4):小数位前面有8位,小数位后面有4位,一共12位
numeric(12,8):小数位前面有4位,小数位后面有8位,一共12位