Sql server 2008 参数值';100';超出范围

Sql server 2008 参数值';100';超出范围,sql-server-2008,types,Sql Server 2008,Types,我有一个SQL Server 2008列表,类型为Numeric(4,0) 我使用的是ADO.NET实体数据模型,该列映射为Decimal?类型 当我尝试插入一个100的值并得到那个错误消息时 你知道为什么吗?如果我想存储0到999之间的数字,哪一种类型是正确的?我会使用带检查约束的smallint,确保只允许0到999之间的值使用smallint,范围:-2^15(-32768)到2^15-1(32767),2个字节BTW,在.NET中表示为System.Int16我使用的是精度为4的十进制。

我有一个SQL Server 2008列表,类型为
Numeric(4,0)

我使用的是ADO.NET实体数据模型,该列映射为
Decimal?
类型

当我尝试插入一个100的值并得到那个错误消息时


你知道为什么吗?如果我想存储0到999之间的数字,哪一种类型是正确的?

我会使用带检查约束的smallint,确保只允许0到999之间的值

使用
smallint
,范围:-2^15(-32768)到2^15-1(32767),2个字节

BTW,在.NET中表示为
System.Int16
我使用的是精度为4的十进制。@VansFannel,请使用
smallint
vs
numeric[(p[,s])]
检查我上面的注释,SQL Server数据类型如何?使用
Numeric(4,0)
是否正确?@VansFannel,出于您的目的,您希望使用
smallint
,这是2字节的存储空间,即使最小的
Numeric[(p[,s])]
数据类型也将是5字节的存储空间