【发布时间】:2014-02-20 02:20:12
【问题描述】:
我试图在 SQL 服务器 VB.net 中创建一个 ID 列,该列将为数据库中创建的每个新行提供一个数字序列。所以我使用以下技术来创建 ID 列。
select * from T_Users
ALTER TABLE T_Users
ADD User_ID INT NOT NULL IDENTITY(1,1) Primary Key
然后我在数据库中注册了几个用户名,它工作得很好。例如,前六行将是 1,2,3,4,5,6。然后我第二天又注册了4个用户,但是这次ID号从6跳到了一个非常大的数字,例如:1,2,3,4,5,6,1002,1003,1004,1005。两天后,我又注册了两个用户,新行显示为 3002,3004。所以我的问题是为什么每隔一天我注册用户就会跳过这么多的数字。我用来创建序列的技术是否错误?如果错了,谁能告诉我如何做对吗?现在,当我对上面使用的技术感到沮丧时,或者我尝试使用顺序生成的 GUID 值。 GUID 值的序列生成良好。但是,唯一的缺点是,它会生成一个非常长的数字(INT 大小的 4 倍)。我的问题是使用 GUID 是否比 INT 有任何显着优势?
问候,
【问题讨论】:
标签: sql-server vb.net