2010-11-04 135 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 
相關問題