2009-06-01 65 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