gpt4 book ai didi

sql-server - SQL Server : why is the 15th char of a GUID always 4?

转载 作者:行者123 更新时间:2023-12-02 06:23:35 25 4
gpt4 key购买 nike

我只是好奇,我一直想知道为什么会这样。

为了弄清楚我是否可以创建一个在第 15 个字符处没有字符 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 是微软独有的产品吗?

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

最佳答案

4表示是使用伪随机数生成的;请参阅Wikipedia's article for Globally Unique Identifiers under Algorithm .

关于sql-server - SQL Server : why is the 15th char of a GUID always 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332649/

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