2009-06-01 108 views
2

我想在SQL中生成唯一的十六進制數。我怎樣才能做到這一點?在SQL中創建十六進制數

如果你知道如何在C#中生成請也包括。

+2

我覺得有必要指出......十六進制數字就像一個十進制數字。他們是數字。唯一的區別是你決定如何表示或顯示它。 – 2009-06-01 13:37:57

+1

我同意湯姆的評論。這裏似乎有某種誤解......爲什麼你需要一個十六進制的數字? – 2009-06-01 13:52:25

+0

它的用戶需求,我們應該自動生成一個十六進制數作爲唯一的ID不是一個整數值。 – Waheed 2009-06-02 07:42:27

回答

2

SQL服務器詛咒:

SELECT NEWID() 

甲骨文

SELECT SYS_GUID() 
FROM dual 

MySQL的

SELECT UUID() 

PostgreSQL的,你必須使用一個外部的功能,儘管它有UUID類型。

2

在SQL Server:NEWID()

在C#:System.Guid.NewGuid()

這些讓你GUID's,這是獨一無二的,十六進制數;然而,他們往往在他們中間有破折號( - ),所以你可能需要做一些字符串解析來得到你想要的。除此之外,這應該適合你。

1

你可以使用一個整數IDENTITY列,然後CONVER,使用

CONVERT(varbinary(8), MyTable.MyId) 
+1

應該是varbinary(8)。此外,OP的問題:這會爲您獲得該表的唯一編號。如果您只想使用唯一的十六進制數字來標識表格中的某一行,請使用此格式 - 管理和輸入手動查詢更容易。 – Eric 2009-06-01 12:21:40