SQL服务器如何生成Guids?

How does SQL Server generate Guids?

我原以为 Guid 应该具有完全随机的值,但我在 table 中发现 SQL 服务器生成的以下 ID:

15B308E5-FC37-E711-9C42-185E0F1C3427
52B09CEE-FC37-E711-9C42-185E0F1C3427
BE9553FF-FC37-E711-9C42-185E0F1C3427
BF9553FF-FC37-E711-9C42-185E0F1C3427
CE169E05-FD37-E711-9C42-185E0F1C3427

它们对我来说似乎不够随机:)

所以我想知道,SQL 服务器如何生成这些值?

提前致谢!

您的示例中的 GUID 似乎是使用 NEWSEQUENTIALID() default constraint. In that case, SQL Server uses the UuidCreateSequential Win32 API 生成的,以及一些字节交换以生成自上次计算机重新启动后顺序排列的 GUID 值。