【问题标题】:How can I generate unique code in SQL Server [duplicate]如何在 SQL Server 中生成唯一代码 [重复]
【发布时间】:2014-07-20 23:35:31
【问题描述】:

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

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

有人知道我该如何实现吗?

【问题讨论】:

  • 为什么需要这些独特的随机码?你想做什么?

标签: sql-server


【解决方案1】:

你试过了吗?

select newid()

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

select left(newid(),7)

【讨论】:

  • 它给了我指导。我需要包含字母数字的 7 个字符代码
  • 你看我的回答了吗?
  • 对不起罗伊。它给了我渴望的输出。
  • 嗨 Royi,我已经测试了数百万条记录,发现代码重复了。
  • 你应该检查没有以前的匹配
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 2013-04-22
    • 2017-04-03
    • 2012-02-01
    • 2012-04-05
    • 1970-01-01
    • 2010-09-18
    • 2012-03-01
    相关资源
    最近更新 更多