NEWSEQUENTIALID (Transact-SQL)

Windows が起動されてから、指定されたコンピューターで、この関数によりこれまでに生成されたどの GUID よりも大きい GUID を生成します。 Windows の再起動後、GUID は、より小さい値の範囲から始まることもありますが、グローバルに一意のままです。 GUID 列を行識別子 (ROWID) として使用する場合は、NEWSEQUENTIALID を使用すると、NEWID 関数を使用するよりも処理が高速になることがあります。 これは、NEWID 関数では、ランダムなアクティビティが発生し、使用されるキャッシュ データ ページが少なくなるためです。 また、NEWSEQUENTIALID を使用すると、データ ページとインデックス ページを完全に埋めることができます。

重要

プライバシーを重視する場合は、この関数は使用しないでください。次に生成される GUID の値が予測されるため、その GUID に関連するデータへのアクセスが発生する可能性があります。

NEWSEQUENTIALID は、Windows の UuidCreateSequential 関数のラッパーです。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)

トピック リンク アイコン 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)