2010-11-04 55 views
14

我想使用SQL SERVER 2008构建一个雇员表,并且在我的表中我想为每个雇员编号。如何在SQL Server 2008中使用GUID数据类型?

我heared约GUID和我有点明白它的数据类型,但我无法使用它

可以请你告诉我用它的方式......

的方式,可以说,我想是这样的:

CREATE TABLE员工( ID GUID PRIMARY KEY, 名称NVARCHAR(50)NOT NULL )

我该怎么办呢?因为我想从中受益,但我无法找到如何做到这一点

回答

20

它不是在SQL Server中称为GUID。这就是所谓的唯一标识符

2

不要使用唯一标识符作为主键,如果集群(这是的PK默认)

严重:使用标准的身份,而不是

+0

我没有得到你很好,有什么事说,利用身份,而不是 – Mouayad 2010-11-04 19:35:42

+0

你能详细谈谈那是什么意思?如果你想让你的ID在全球范围内独一无二?现在无法真正想到你为什么要这样做的原因,但我有兴趣知道为什么这是一个坏主意? – 2010-11-04 19:35:56

+1

@ Hugo:例如,参见Kimberly L. Tripp的文章:[GUIDs PRIMARY KEYs and/or the clustering key](http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-键 - 安道尔最簇的key.aspx)。 – 2010-11-04 19:39:50

13

类型被称为UNIQUEIDENTIFIER,正如其他人已经指出的那样。但我认为在继续之前,您绝对必须阅读本文:GUIDs as PRIMARY KEYs and/or the clustering key

+0

+1个很棒的链接 - 作为PK的GUID引人入胜 - 但价格合理! – 2010-11-04 21:27:54

0

您也可以考虑使用NEWSEQUENCIALID作为ID列的默认值,因为它比使用NEWID()生成GUID的速度更快。

BUT(从上面相同的链接): -

如果隐私是一个问题,不要使用此功能。可以猜测下一个生成的GUID的值,因此可以访问与该GUID相关的数据。

1

实际演示,FWIW

DECLARE @guid1 AS uniqueidentifier 
SET @guid1 = NEWID() 
SELECT @guid1 
相关问题