NEWSEQUENTIALID() (Transact-SQL)

建立一個 GUID,該 GUID 會大於這個函數先前在指定的電腦啟動 Windows 後所產生的任何 GUID。 重新啟動 Windows 後,GUID 可以從較低的範圍再次啟動,但仍是全域唯一的。 將 GUID 資料行當做資料列識別碼使用時,使用 NEWSEQUENTIALID 可能比使用 NEWID 函數更快。 這是因為 NEWID 函數會造成隨機活動,因此會使用較少的快取資料頁面。 使用 NEWSEQUENTIALID 也有助於完全填滿資料與索引頁面。

重要事項重要事項

如果您有隱私權顧慮,請勿使用這個函數。 因為使用者不難猜出下一個產生的 GUID 值,進而存取與該 GUID 相關聯的資料。

NEWSEQUENTIALID 是 Windows UuidCreateSequential 函數上的一個包裝函數。

主題連結圖示 Transact-SQL 語法慣例

語法

NEWSEQUENTIALID ( )

傳回類型

uniqueidentifier

備註

NEWSEQUENTIALID() 只能搭配使用 uniqueidentifier 類型之資料表資料行的 DEFAULT 條件約束。 例如:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) 

當 NEWSEQUENTIALID() 用於 DEFAULT 運算式時,不能與其他純量運算子結合。 例如,您不可以執行下列作業:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT dbo.myfunction(NEWSEQUENTIALID())) 

在上一個範例中,myfunction() 是一個純量使用者自訂的純量函數,可以接受和傳回 uniqueidentifier 值。

NEWSEQUENTIALID() 不能在查詢中參考。

您可以使用 NEWSEQUENTIALID() 來產生 GUID,以減少在索引分葉層級的網頁競爭。

每個使用 NEWSEQUENTIALID() 所產生的 GUID 在該電腦上都是唯一的。 只有當來源電腦具有網路卡時,使用 NEWSEQUENTIALID() 所產生的 GUID 在多部電腦上才是唯一的。

請參閱

參考

NEWID (Transact-SQL)

比較運算子 (Transact-SQL)