作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是好奇,我一直想知道为什么会这样。
为了弄清楚我是否可以创建一个在第 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/
我是一名优秀的程序员,十分优秀!