我只是好奇,我一直想知道为什么会这样.
试图找出我是否可以创建一个没有第十五个角色的角色4,我跑了这个…
DECLARE @GUID AS NVARCHAR(36) DECLARE @COUNT AS INTEGER SET @COUNT = 0 SET @GUID = CAST(NEWID() AS NVARCHAR(36)) WHILE SUBSTRING(@GUID,15,1) = '4' BEGIN SET @COUNT = @COUNT + 1 SET @GUID = CAST(NEWID() AS NVARCHAR(36)) END PRINT 'Attempts : ' + CAST(@COUNT AS NVARCHAR(MAX)) PRINT @GUID
你可能会猜到,这从来没有为我而结束.我在周末在服务器上运行
如果NewID应该总是给出一个随机的ID,为什么这4个总是在那里.
BC13DF1C-60FB-41C2-B5B2-8F1A73CF2485 D790D359-AB3D-4657-A864-FA89FACB3E99 DF1BBC0C-4205-48E8-A1B6-EA9544D7C6E5
对于生成唯一标识符的系统来说,第15位是否有某种识别?
事实上,VB.net的System.Guid.Newguid函数也是一样的.这4只是微软吗?
编辑:也许我还应该问,他们是否真的是独一无二的?一个人可以依靠一个在整个数据库中独一无二吗?我知道基于数据库系统的这些假设保证在数据库内是唯一的.在不同表中有数百万条记录…其中任何一个可能相同?