NEWSEQUENTIALID() (Transact-SQL)

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. Después de reiniciar Windows, el GUID se puede volver a iniciar desde un intervalo más bajo, pero sigue siendo globalmente único. 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. La razón es que la función NEWID causa actividad aleatoria y utiliza menos páginas de datos en caché. El uso de NEWSEQUENTIALID también ayuda a rellenar por completo las páginas de datos y de índices.

Nota importanteImportante

Si la protección de la privacidad es de particular importancia, no utilice esta función. Es posible estimar el valor del GUID generado a continuación y, por tanto, obtener acceso a los datos asociados con dicho GUID.

NEWSEQUENTIALID es un contenedor de la función UuidCreateSequential de Windows.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

NEWSEQUENTIALID ( )

Tipo de valor devuelto

uniqueidentifier

Comentarios

NEWSEQUENTIALID() solo se puede utilizar con restricciones DEFAULT en columnas de tabla de tipo uniqueidentifier. Por ejemplo:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) 

Cuando NEWSEQUENTIALID() se utiliza en expresiones DEFAULT, no se puede combinar con otros operadores escalares. Por ejemplo, no se puede ejecutar lo siguiente:

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.

No se puede hacer referencia a NEWSEQUENTIALID() en las consultas.

NEWSEQUENTIALID() se puede utilizar para generar GUID a fin de reducir la contención de páginas de nivel hoja en los índices.

Cada GUID generado utilizando NEWSEQUENTIALID () es único en ese equipo. Los GUID generados utilizando NEWSEQUENTIALID () solo son únicos en varios equipos si el equipo de origen tiene una tarjeta de red.

Vea también

Referencia

NEWID (Transact-SQL)

Operadores de comparación (Transact-SQL)