gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:55:38 24 4
gpt4 key购买 nike

我是 SQL Server 2008 的初学者。表中有一个像 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,并且每秒插入一千行,那么您需要令人难以置信的2.92 亿年才能达到 922千万亿极限....

INT 使用 4 个字节的存储空间,而 BIGINT 使用 8 个字节。特别是如果您处理大量行和大量非聚集索引,您希望将其保持尽可能小 - 这也是我通常选择 INT 的另一个原因code> 作为我的“ID”类型(除非我有非常强烈的迹象表明 INT 不够......)

MSDN Books Online 中了解更多相关信息(包含所有选项) .

关于sql-server - SQL Server 2008 中 ID 列的最佳类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11222968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com