NEWSEQUENTIALID() (Transact-SQL)

自 Windows 啟動後,在指定電腦上建立一個 GUID,該 GUID 大於之前由這個函數所產生的任何 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 在多部電腦上才是唯一的。如需有關 GUID 的詳細資訊,請參閱<使用 Uniqueidentifier 資料>。

變更記錄

更新的內容

已加入重新啟動 Windows 後對 GUID 可能產生之影響的描述。