我试图在SQL Server和VB.net中创建一个ID
列,用于为数据库中每个新行创建一个数字序列。因此,我使用了以下技术来创建ID列。
select * from T_Users
ALTER TABLE T_Users
ADD User_ID INT NOT NULL IDENTITY(1,1) Primary Key
然后我将一些用户名注册到数据库中,它正常工作。例如,前六行的ID是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更好?
此致,敬礼