適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 SQL 資料庫
建立一個 GUID,該 GUID 會大於這個函數先前在指定的電腦啟動 Windows 後所產生的任何 GUID。 Windows 重新啟動之後,GUID 可以從較低的範圍重新啟動,但仍是全域唯一的。 當 GUID 資料行用作資料列識別碼時,使用 NEWSEQUENTIALID 可能比使用 函數 NEWID 更快。 這是因為函數 NEWID 會導致隨機活動,並使用較少的快取資料頁。 使用 NEWSEQUENTIALID 也有助於完全填滿資料和索引頁面。
重要
如果擔心隱私,請不要使用此功能。 您可以猜測下一個產生的 GUID 值,因此存取與該 GUID 相關聯的數據。
NEWSEQUENTIALID是 Windows UuidCreateSequential 函式的包裝函式,並套用一些位元組隨機。
警告
函 UuidCreateSequential 式具有硬體相依性。 在 SQL Server 上,當資料庫 (例如自主資料庫) 移動到另一部電腦時,順序值的叢集便可進行開發。 在 Azure SQL 資料庫中,當您使用 Always On 時,如果資料庫容錯移轉至不同的電腦,則可能會開發循序值的叢集。
語法
NEWSEQUENTIALID ( )
傳回類型
uniqueidentifier
備註
NEWSEQUENTIALID只能與 DEFAULT 類型的表格資料行的條件約束搭配使用。 例如:
CREATE TABLE myTable
(
ColumnA UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID()
);
在運算式中使用NEWSEQUENTIALID時DEFAULT,它無法與其他純量運算子結合。 例如,您無法執行下列程式碼:
CREATE TABLE myTable
(
ColumnA UNIQUEIDENTIFIER DEFAULT dbo.myfunction(NEWSEQUENTIALID())
);
在上一個範例中,myfunction() 是一個純量使用者自訂的純量函數,可以接受和傳回 uniqueidentifier 值。
NEWSEQUENTIALID 無法在查詢中引用。
您可以使用來 NEWSEQUENTIALID 產生 GUID,以減少索引分葉層級的頁面分割和隨機 IO。
使用 產生 NEWSEQUENTIALID 的每個 GUID 在該電腦上都是唯一的。 只有在來源電腦有網路卡時,使用所 NEWSEQUENTIALID 產生的 GUID 在多部電腦上才是唯一的。