微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中阅读更多(有所有选项).

原文地址:https://www.jb51.cc/mssql/75893.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐