sql server express 2008 R2中数字类型的精度和比例

时间:2011-09-12 09:19:48

标签: sql-server-2008 sql-server-express numeric sqldatatypes

我在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。不知道这里发生了什么:(

1 个答案:

答案 0 :(得分:4)

decimal(9,3)应该可以正常使用123456.123,请重新检查!

执行

declare @d decimal(9,3) = 123456.123 

没有错误。此数据类型允许小数点左边6位数,右边3位数。