SQL Server如何使用newid()创建uniqueidentifier?

问题描述:

任何人都可以请帮我了解SQL Server如何决定调用newid()时要使用哪个32字母的Uniqueidentifier?我的问题不是如何装箱uniqueidentifier,我想了解内部SQL Server如何决定这个随机ID,SQL Server用来生成此ID的算法是什么。SQL Server如何使用newid()创建uniqueidentifier?

谢谢。

+0

我相信这是一个生成GUID的底层OS调用--SQL Server本身只是调用Windows系统函数来执行此操作。 [请参阅关于GUID的*文章](https://en.wikipedia.org/wiki/Globally_unique_identifier) –

GUID是16字节的二进制值。将它们显示为32个十六进制值只是一种表示。它们不是存储为“32个字母”

作为字符串记载here

旧的GUID生成函数NEWID也是通过一个OS 功能CoCreateGuid的包装,因此,所有的CoCreateGuid 的语义存在于NewId中。

所以你需要找到它的实现。但为什么你关心呢?