SQL Server如何生成Guids?

时间:2017-05-13 18:40:16

标签: sql-server guid

我认为Guids应该具有完全随机的值,但我在表中找到了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如何生成这些值?

提前致谢!

1 个答案:

答案 0 :(得分:3)

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