NEWSEQUENTIALID() (Transact-SQL)

Windows が起動されてから、指定されたコンピューターで、この関数によりこれまでに生成されたどの 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 データの使用」を参照してください。