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

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Crea un identificador único global (GUID) que es mayor que cualquier GUID generado previamente por esta función en un equipo específico desde que se inició Windows.Creates a GUID that is greater than any GUID previously generated by this function on a specified computer since Windows was started. Después de reiniciar Windows, el GUID se puede volver a iniciar desde un intervalo más bajo, pero sigue siendo globalmente único.After restarting Windows, the GUID can start again from a lower range, but is still globally unique. Cuando una columna de GUID se utiliza como identificador de fila, el uso de NEWSEQUENTIALID puede ser más rápido que el uso de la función NEWID.When a GUID column is used as a row identifier, using NEWSEQUENTIALID can be faster than using the NEWID function. La razón es que la función NEWID causa actividad aleatoria y utiliza menos páginas de datos en caché.This is because the NEWID function causes random activity and uses fewer cached data pages. El uso de NEWSEQUENTIALID también ayuda a rellenar por completo las páginas de datos y de índices.Using NEWSEQUENTIALID also helps to completely fill the data and index pages.

Importante

Si la protección de la privacidad es de particular importancia, no utilice esta función.If privacy is a concern, do not use this function. Es posible estimar el valor del GUID generado a continuación y, por tanto, obtener acceso a los datos asociados con dicho GUID.It is possible to guess the value of the next generated GUID and, therefore, access data associated with that GUID.

NEWSEQUENTIALID es un contenedor de la función UuidCreateSequential de Windows que tiene aplicado algo de orden de bytes aleatorio.NEWSEQUENTIALID is a wrapper over the Windows UuidCreateSequential function, with some byte shuffling applied.

Advertencia

La función UuidCreateSequential tiene dependencias de hardware.The UuidCreateSequential function has hardware dependencies. En SQL ServerSQL Server, se pueden general clústeres de valores secuenciales cuando las bases de datos (por ejemplo, las bases de datos independientes) se mueven a otros equipos.On SQL ServerSQL Server, clusters of sequential values can develop when databases (such as contained databases) are moved to other computers. Cuando se usa Always On en SQL DatabaseSQL Database, se pueden generar clústeres de valores secuenciales si la base de datos conmuta por error a otro equipo.When using Always On and on SQL DatabaseSQL Database, clusters of sequential values can develop if the database fails over to a different computer.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
NEWSEQUENTIALID ( )  

Tipo devueltoReturn Type

uniqueidentifieruniqueidentifier

NotasRemarks

NEWSEQUENTIALID() solo se puede usar con restricciones DEFAULT en columnas de tabla de tipo uniqueidentifier.NEWSEQUENTIALID() can only be used with DEFAULT constraints on table columns of type uniqueidentifier. Por ejemplo:For example:

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

Cuando NEWSEQUENTIALID() se utiliza en expresiones DEFAULT, no se puede combinar con otros operadores escalares.When NEWSEQUENTIALID() is used in DEFAULT expressions, it cannot be combined with other scalar operators. Por ejemplo, no se puede ejecutar lo siguiente:For example, you cannot execute the following:

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

En el ejemplo anterior, myfunction() es una función escalar definida por el usuario que acepta y devuelve un valor uniqueidentifier.In the previous example, myfunction() is a scalar user-defined scalar function that accepts and returns a uniqueidentifier value.

No se puede hacer referencia a NEWSEQUENTIALID en las consultas.NEWSEQUENTIALID cannot be referenced in queries.

Puede usar NEWSEQUENTIALID para generar GUID a fin de reducir la contención de páginas y E/S aleatoria de nivel hoja en los índices.You can use NEWSEQUENTIALID to generate GUIDs to reduce page splits and random IO at the leaf level of indexes.

Cada GUID generado utilizando NEWSEQUENTIALID es único en ese equipo.Each GUID generated by using NEWSEQUENTIALID is unique on that computer. Los GUID generados utilizando NEWSEQUENTIALID solo son únicos en varios equipos si el equipo de origen tiene una tarjeta de red.GUIDs generated by using NEWSEQUENTIALID are unique across multiple computers only if the source computer has a network card.

Consulte tambiénSee Also

NEWID (Transact-SQL) NEWID (Transact-SQL)
Operadores de comparación (Transact-SQL)Comparison Operators (Transact-SQL)