sql-server – SQL Server 2008中ID列的最佳类型

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server 2008中ID列的最佳类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是sql Server 2008的初学者.表中有一个colunm,如StudentID.
StudentID将是表的pk,它只能是整数,它将是一个巨大的数字.

我的问题是sql Server 2008中的列StudentID的类型是最好的?

BIGINT?
数字(18,0)?还是别人?

非常感谢.

解决方法

您可以使用IDENTITY属性定义一个类型为INT(或SMALLINT,TINYINT,BIGINT)的列:
CREATE TABLE dbo.YourTable( ID INT IDENTITY(1,1) ......

通过此设置,当行插入到表中时,sql Server将自动生成表的连续ID.

使用INT型,从1开始,您可以获得超过20亿个可能的行 – 这在绝大多数情况下应该是足够的.使用BIGINT,您将获得大约922万亿(922,15个零 – 922,000亿) – 足够你吗?

如果您使用从1开始的INT IDENTITY,并且每秒插入一行,则需要66.5年才能达到20亿的限制…(所以在我看来,这对绝大多数情况来说是足够的! )

如果您使用从1开始的BIGINT IDENTITY,并且每秒插入一千行,则在您达到922千兆限制之前,您需要一个2.9亿年的想法.

INT使用4个字节的存储空间,而BIGINT使用8个字节.特别是如果你处理大量的行和一些非聚集的索引,你希望保持尽可能的小 – 另一个原因,我通常选择INT作为我的“ID”类型(除非我有一个非常强烈的指示,INT将不够…)

MSDN Books Online中阅读更多(有所有选项).

猜你在找的MsSQL相关文章