Compartir a través de


NEWSEQUENTIALID (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLBase de datos SQL en Microsoft Fabric

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 puede empezar de nuevo desde un intervalo inferior, pero sigue siendo único globalmente. Cuando se usa una columna GUID como identificador de fila, el uso NEWSEQUENTIALID de puede ser más rápido que usar la NEWID función . Esto se debe a que la NEWID función provoca actividad aleatoria y usa menos páginas de datos almacenadas en caché. El uso NEWSEQUENTIALID de también ayuda a rellenar completamente los datos y las páginas de índice.

Importante

Si la privacidad es un problema, no use esta función. Es posible adivinar el valor del SIGUIENTE GUID generado y, por tanto, acceder a los datos asociados a ese GUID.

NEWSEQUENTIALID es un contenedor sobre la función UuidCreateSequential de Windows, con algún orden aleatorio de bytes aplicado.

Advertencia

La UuidCreateSequential función tiene dependencias de hardware. En SQL 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. En Azure SQL Database y cuando se usa AlwaysOn, los clústeres de valores secuenciales pueden desarrollarse si la base de datos conmuta por error a un equipo diferente.

Convenciones de sintaxis de Transact-SQL

Sintaxis

NEWSEQUENTIALID ( )

Tipos de retorno

uniqueidentifier

Comentarios

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

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

Cuando NEWSEQUENTIALID se usa en DEFAULT expresiones, no se puede combinar con otros operadores escalares. Por ejemplo, no puede ejecutar el código 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.

NEWSEQUENTIALID no se puede hacer referencia a en las consultas.

Puede usar NEWSEQUENTIALID para generar GUID para reducir las divisiones de página y la E/S aleatoria en el nivel hoja de índices.

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