sql-server – SQL Server:为什么GUID的第15个char总是4?

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server:为什么GUID的第15个char总是4?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是好奇,我一直想知道为什么会这样.

试图找出我是否可以创建一个没有第十五个角色的角色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只是微软吗?

编辑:也许我还应该问,他们是否真的是独一无二的?一个人可以依靠一个在整个数据库中独一无二吗?我知道基于数据库系统的这些假设保证在数据库内是唯一的.在不同表中有数百万条记录…其中任何一个可能相同?

解决方法

猜你在找的MsSQL相关文章