我試圖在INSERT時爲唯一條目生成一個「客戶」表時生成唯一的「引薦代碼」。我想用默認值約束來做到這一點。生成唯一的隨機數
我的問題是,我如何保證隨機生成的值將是唯一的?我知道我可以這樣做:
SELECT ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) AS [ReferralCode]
會給我一個隨機整數,但我懷疑它是非唯一的。
幫助?
謝謝!
我試圖在INSERT時爲唯一條目生成一個「客戶」表時生成唯一的「引薦代碼」。我想用默認值約束來做到這一點。生成唯一的隨機數
我的問題是,我如何保證隨機生成的值將是唯一的?我知道我可以這樣做:
SELECT ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) AS [ReferralCode]
會給我一個隨機整數,但我懷疑它是非唯一的。
幫助?
謝謝!
這就是uniqueidentifier的用途。但是,如果需要int
是不行的。 Int32
是爲了擁有相當全球獨一無二的價值。
更新:
如果該值只需要在該表中唯一,則只需創建另一列,啓用身份並將種子設置爲某個值即可。
也許看看一些strategies,在像NHibernate的
可用的你真的需要隨機編號嗎?或者僞隨機就足夠了? –
僞隨機可能有效嗎? – Ray