Sql server 2008 r2 我的Sql server 2008 r2中的未签名短数据类型

Sql server 2008 r2 我的Sql server 2008 r2中的未签名短数据类型,sql-server-2008-r2,Sql Server 2008 R2,我想在SQL server数据库中存储端口号。通常情况下,任何端口都可以具有(0到65535)之间的值 在下面的链接中提到,“unsigned short”将适用于存储端口号 但在我的案例中,我正在起诉SQLServer2008R2,那么我可以使用哪种数据类型来表示“unsignedshort” 关于请参阅 您可以使用: 但即使是最小的精度(1-9)也是5字节 查看(并忽略bigint,因为这太过分了): 。。。smallint太小,所以只需使用integer。与每次decimal/numeri

我想在SQL server数据库中存储端口号。通常情况下,任何端口都可以具有(0到65535)之间的值

在下面的链接中提到,“unsigned short”将适用于存储端口号

但在我的案例中,我正在起诉SQLServer2008R2,那么我可以使用哪种数据类型来表示“unsignedshort”

关于

请参阅

您可以使用:

但即使是最小的精度(1-9)也是5字节

查看(并忽略
bigint
,因为这太过分了):


。。。
smallint
太小,所以只需使用
integer
。与每次
decimal
/
numeric
相比,它每次都会为您节省一个额外的字节。

感谢您的回复,但是为什么int总是占据4个字节,而不管它的长度如何。我的意思是,如果我有像(2000000)这样的整数和像(420)这样的整数,这两个整数会占用相同的存储空间吗?@johnG-它们都会占用相同的存储空间,因为SQL Server就是这样为该数据类型存储它们的。
Precision     Storage bytes
1-9           5
10-19         9
20-28         13
29-38         17
Data type    Range                                                 Storage
int          -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)      4 Bytes
smallint     -2^15 (-32,768) to 2^15-1 (32,767)                    2 Bytes
tinyint      0 to 255                                              1 Byte