NEWSEQUENTIALID (Transact-SQL)NEWSEQUENTIALID (Transact-SQL)

適用対象: はいSQL Server はいAzure SQL Database いいえAzure Synapse Analytics (SQL DW) いいえParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

Windows が起動されてから、指定されたコンピューターで、この関数によりこれまでに生成されたどの GUID よりも大きい GUID を生成します。Creates a GUID that is greater than any GUID previously generated by this function on a specified computer since Windows was started. Windows の再起動後、GUID は範囲の下限からもう一度開始できますが、まだグローバルに一意です。After restarting Windows, the GUID can start again from a lower range, but is still globally unique. GUID 列が行識別子として使用される場合、NEWSEQUENTIALID を使用すると、NEWID 関数を使用するよりも高速化できます。When a GUID column is used as a row identifier, using NEWSEQUENTIALID can be faster than using the NEWID function. これは、NEWID 関数では、ランダムなアクティビティが発生し、使用されるキャッシュ データ ページが少なくなるためです。This is because the NEWID function causes random activity and uses fewer cached data pages. NEWSEQUENTIALID を使用すると、データおよびインデックス ページを完全に入力するためにも役立ちます。Using NEWSEQUENTIALID also helps to completely fill the data and index pages.

重要

プライバシーを重視する場合は、この関数は使用しないでください。If privacy is a concern, do not use this function. 次に生成される GUID 値を推測できるため、その GUID に関連付けられているデータにアクセスできることになります。It is possible to guess the value of the next generated GUID and, therefore, access data associated with that GUID.

NEWSEQUENTIALID は、Windows の UuidCreateSequential 関数のラッパーであり、何らかのバイト シャッフルが適用されますNEWSEQUENTIALID is a wrapper over the Windows UuidCreateSequential function, with some byte shuffling applied.

警告

UuidCreateSequential 関数には、ハードウェア依存関係があります。The UuidCreateSequential function has hardware dependencies. SQL ServerSQL Server, 、データベース (包含データベースの場合) などは、他のコンピューターに移動すると、連続した値のクラスターを開発できます。On SQL ServerSQL Server, clusters of sequential values can develop when databases (such as contained databases) are moved to other computers. Always On を SQL DatabaseSQL Database で使用するとき、データベースの別のコンピューターへのフェールオーバーが失敗した場合、シーケンシャル値のクラスターが発生する可能性があります。When using Always On and on SQL DatabaseSQL Database, clusters of sequential values can develop if the database fails over to a different computer.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
NEWSEQUENTIALID ( )  

戻り値の型Return Type

uniqueidentifieruniqueidentifier

解説Remarks

NEWSEQUENTIALID() は、型のテーブル列の既定の制約でのみ使用できます uniqueidentifierです。NEWSEQUENTIALID() can only be used with DEFAULT constraints on table columns of type uniqueidentifier. 次に例を示します。For example:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID());   

NEWSEQUENTIALID() を DEFAULT 式で使用する場合、他のスカラー演算子と組み合わせることはできません。When NEWSEQUENTIALID() is used in DEFAULT expressions, it cannot be combined with other scalar operators. たとえば、次を実行することはできません。For example, you cannot execute the following:

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

この例で、myfunction() は、uniqueidentifier 値を受け入れて返すユーザー定義スカラー関数です。In the previous example, myfunction() is a scalar user-defined scalar function that accepts and returns a uniqueidentifier value.

クエリで NEWSEQUENTIALID を参照することはできません。NEWSEQUENTIALID cannot be referenced in queries.

NEWSEQUENTIALID を使って GUID を生成し、インデックスのリーフ レベルでページの分割とランダム IO を減らすことができます。You can use NEWSEQUENTIALID to generate GUIDs to reduce page splits and random IO at the leaf level of indexes.

NEWSEQUENTIALID を使用して生成された各 GUID は、そのコンピューター上で一意です。Each GUID generated by using NEWSEQUENTIALID is unique on that computer. NEWSEQUENTIALID を使用して生成された GUID は、ソース コンピューターにネットワーク カードがある場合にのみ、複数のコンピューター間で一意になります。GUIDs generated by using NEWSEQUENTIALID are unique across multiple computers only if the source computer has a network card.

参照See Also

NEWID (Transact-SQL) NEWID (Transact-SQL)
比較演算子 (Transact-SQL)Comparison Operators (Transact-SQL)