SQL Server中整型数据类型主要有四类 bigint、  int  、 smallint  和  tinyint ,区分他们,主要看他们所占的位数。

bigint:占8个字节,64位。从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据

int: 占4个字节,32位。 从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据
smallint: 占2个字节,16位。 从-2^15(-32,768)到2^15-1(32,767)的整数数据
tinyint: 占1个字节,8位。 从0到255的整数数据

注释

在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。

总结

所以选择最恰当的数据类型是非常重要的,例如,给你10个18位的全是数字的×××号码,和10个15位的全是数字的×××号码。让你以最快的查询的速度查找出来,这20个记录,那么你在设计这个字段的时候,应该有几个地方要注意:

1. 最快的查询速度,无非我们选择int类型的数据来存储这20个×××号码。但是15位和18位的数据貌似只有bigint才满足条件。

2. 有人要说为啥不用varchar或者char呢。直接存成一个字符串。这个问题问的比较好,首先,int的查询速度肯定比varchar和char要快,那么int类型的数据是首选,但是int在sqlserver中有好几种。这个就要选择最恰当的