我试图在INSERT上为“customer”表中的唯一条目生成唯一的“引用代码”。我想用默认值约束来做到这一点。
我的问题是,如何保证随机生成的值将是唯一的?我知道我可以这样做:
SELECT ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) AS [ReferralCode]
会给我一个随机整数,但我怀疑它不是唯一的。
帮助?
谢谢!
答案 0 :(得分:3)
这就是uniqueidentifier的用途。但如果int
是必需的,那就无法运作。 Int32
很小,可以保持相当全球的独特价值。
更新:
如果该值只需要在该表中唯一,则只需创建另一列,启用标识并将种子设置为某个值。
答案 1 :(得分:0)
你可以根据记录的主键(假设为int),加上一些大数字使其看起来随机吗?例如,(CustomerID + 31281923928)。如果您不介意值是连续的,那就是这样。
答案 2 :(得分:0)