一般来说,很多人在MSSQL中,都喜欢使用INT数据类型作为关键字段,同时,还设置其为自增字段。那么,INT类型的数据,它的取值范围是多少,最大值又是多少呢?是否足够我们使用呢?
INT其实还分为几类的,下面我们对其最大值作一个简单说明。
①bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
②int
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
③smallint
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
④tinyint
从 0 到 255 的整型数据。存储大小为 1 字节。
知识拓展:
由此可知INT的最大值是二十多亿,一般来说,是用不完的了。倘若用完了,那又如何来解决这个问题呢?
有两个办法:一个是修改表结构,把Id的int数据类型修改为bigint;第二个是重置Id(Identity标识列)的值,使它重新增长。
当前标识值:current identity value,用于记录和保存最后一次系统分配的Id值;下次分配Id就是:当前标识值+标识增量(通常为+1,也可以自行设置);
当前列值:current column value,这Id值到目前为止的最大值;