如何在SQL Server中生成唯一代码

时间:2014-05-31 07:35:13

标签: sql-server

我需要在SQL Server中生成如下所示的唯一代码

8E9560C,
2CAF902,
ADE4A86,
DF6A69E,
8074D34,

任何人都知道如何实现它?

2 个答案:

答案 0 :(得分:1)

你试过这个吗?

select newid()

或者如果你只想要7个字符:

select left(newid(),7)

答案 1 :(得分:1)

NEWID()生成v4 GUID。在该GUID方案中,前8个字节可以是任何十六进制数字0-F,并且将完全由随机生成的数据组成。这不能保证是独一无二的;事实上,没有任何v4 GUID是唯一的,它只是随机位(128个中的112个)可以代表5.19十亿个数字中的一个,因此它们中任何两个在同一系统中匹配的几率是无穷小的。只有前8个字节,你只有2 ^ 32个组合,这可能看起来仍然很多(四十亿分之一)但是由于生日问题,在生成了少量77,000之后,你有50-生成重复的50个镜头。