SQL Server 如何生成 Guid



我认为 Guid 应该具有完全随机的值,但我在我的表中发现了 SQL Server 生成的以下 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 Server是如何生成这些值的?

提前感谢!

看起来示例中的 GUID 是使用NEWSEQUENTIALID()默认约束生成的。在这种情况下,SQL Server 使用 UuidCreateSequential Win32 API 以及一些字节交换来生成自上次计算机重新启动以来按顺序排列的有序 GUID 值。

最新更新