如何在SQL Server中实际存储和排序/比较guid?

Vac*_*ano 5 sql-server guid uniqueidentifier

说我有这个指南:

{2A87E3E2-2B6A-4149-9F5A-1B76092843D9}

它实际上是在数据库中存储这个字母数字吗?(我不这么认为因为它必须适合16个字节.)

如果没有,那么它是如何存储的?(我的猜测是十六进制数,但我不确定.)

如何判断一个GUID是否大于另一个?(您可能需要了解索引目的.)您是否像十六进制数一样读取GUID(用于比较)?

gbn*_*gbn 11

GUID在内部存储为二进制(16).MSDN上的"使用uniqueidentifier数据"告诉你这一点.该{ }-是不是值的一部分.

GUID可以"排序"并具有更大/更小的比较:请参阅规范"如何按SQL Server排序GUID?" .

注意:这意味着它们不会被排序为二进制(16)(除非你猜测我猜...)

我不明白为什么你在现实生活中想要这个(不是索引,我的意思是现实世界):关于NEWID的"排序"潜力的唯一用途是随机行技巧ORDER BY NEWID()

您可以使用NEWSEQUENTIALID获得"升序"GUID(基于上面的文章).但是,在Windows重启=无意义的IMO之后,这种"排序"不会继续.