Sql server 2008 SQL server数据类型int与大int

Sql server 2008 SQL server数据类型int与大int,sql-server-2008,types,Sql Server 2008,Types,我创建了一个列id为int数据类型的表。然而,我意识到int-type可能无法保存我可能放在表中的一些值。我想知道,如果我将列定义为bigint,它是占用“空间”还是在我将值放入列之前就占用了数据库上的空间?我正在使用SQLServer2008R2。多谢各位 int始终使用4个字节,bigint始终使用8个字节。存储的实际值不影响字段的大小。int始终使用4个字节,bigint始终使用8个字节。存储的实际值不会影响字段的大小。每次输入任何数字,即使是1,也将使用完整的8字节。因此,额外的存储开销

我创建了一个列id为int数据类型的表。然而,我意识到int-type可能无法保存我可能放在表中的一些值。我想知道,如果我将列定义为bigint,它是占用“空间”还是在我将值放入列之前就占用了数据库上的空间?我正在使用SQLServer2008R2。多谢各位

int始终使用4个字节,bigint始终使用8个字节。存储的实际值不影响字段的大小。

int始终使用4个字节,bigint始终使用8个字节。存储的实际值不会影响字段的大小。

每次输入任何数字,即使是1,也将使用完整的8字节。因此,额外的存储开销是4字节*行数。如果您担心数字将增长到2147483647以上,则应使用bigint。

每次输入任何数字,即使是1,也将使用完整的8字节。因此,额外的存储开销是4字节*行数。如果您担心您的数字将增长到2147483647以上,那么您应该使用bigint。

非常感谢。还有一个问题。如果我在一个bigint列上有int“124”,这会使用3个字符乘以8字节的空间吗?这不完全是真的。。。如果您实现了数据压缩,那么在不需要所有字节的情况下,它将能够减少使用的空间。值“124”可以放入压缩下的
TINYINT
所需的空间。但是,Jim请注意不要计数字符,并假设它与字节数直接相关。非常感谢。还有一个问题。如果我在一个bigint列上有int“124”,这会使用3个字符乘以8字节的空间吗?这不完全是真的。。。如果您实现了数据压缩,那么在不需要所有字节的情况下,它将能够减少使用的空间。值“124”可以放入压缩下的
TINYINT
所需的空间。但是,吉姆请注意不要计算字符数,并假设它与字节数直接相关。@Spencer…非常感谢。对不起,我之前没有看到答案…现在有意义了。克里斯:谢谢。@Spencer……非常感谢。对不起,我之前没有看到答案…现在有意义了。克里斯,谢谢你。