我在sql server 2008 exp r2中声明了一个列为数字(5,3),我假设它允许我保存像12345.123这样的值但是当我试图输入大于100的任何值时它会给我溢出错误。它让我相信在数字(5,3)中,5表示数字的总长度,包括精度和比例。考虑到这一点,我将列的类型更改为十进制(9,3),并假设它允许我输入像123456.123这样的值,但它再次给出溢出错误。我无法理解sql server如何解释这个数据类型及其精度和规模
的更新
奇怪的是,当插入值numeric(9,3)时,只允许输入1234.123之类的值,但在编辑行时我可以输入值123456.123。不知道这里发生了什么:(
答案 0 :(得分:4)
decimal(9,3)
应该可以正常使用123456.123
,请重新检查!
执行
declare @d decimal(9,3) = 123456.123
没有错误。此数据类型允许小数点左边6位数,右边3位数。