大部分人在建立主鑰時多半會用Int(identifier)或Guid(uniqueidentifier),前一陣子我開始偏愛用Guid,因為不會跳號、在URL中使用者不容易破解、唯一,但有優點也有缺點,搜詢比INT慢,儲存的空間比較多(Int:4Byte GUID:16Byte),也就是Guid好歸好,只是成本高了點,看個人系統規模與硬體決定吧。
IDENTITY
語法
IDENTITY [ (seed , increment) ]
引數
seed 這是載入資料表的第一個資料列所用的值。
- increment 這是加入先前載入的資料列之識別值的累加值。
您必須同時指定種子和遞增,或同時不指定這兩者。如果同時不指定這兩者,預設值便是 (1,1)。
範例
CREATE TABLE new_myTable ( ColumnA int IDENTITY(1,1))
Uniqueidentifier
uniqueidentifier 資料類型中儲存做為全域唯一識別碼 (GUID) 使用的 16 位元組二進位值。GUID 是一種唯一的二進位數字;全世界的電腦都不會產生重複的 GUID 值。GUID 的主要用途是在有許多站台與許多電腦的網路上指派一個唯一識別碼。
範例
CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWID())
您可以使用 NEWSEQUENTIALID() 來產生 GUID,以減少在索引分葉層級的網頁爭用。
CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID())