Condividi tramite


NEWSEQUENTIALID () (Transact-SQL)

Crea un GUID maggiore di qualsiasi GUID generato in precedenza da questa funzione in un computer specificato dall'avvio di Windows. Dopo avere riavviato Windows, è possibile avviare di nuovo il GUID da un intervallo inferiore, ma ancora globalmente univoco. Quando una colonna GUID viene utilizzata come identificatore di riga, l'utilizzo di NEWSEQUENTIALID può essere più veloce rispetto all'utilizzo della funzione NEWID, poiché la funzione NEWID causa un'attività casuale e utilizza un numero inferiore di pagine di dati memorizzate nella cache. L'utilizzo di NEWSEQUENTIALID consente inoltre di completare le pagine di dati e di indice.

Nota importanteImportante

In caso di problemi di riservatezza, non utilizzare questa funzione. È possibile intuire il valore del GUID che verrà generato successivamente e accedere ai dati associati a tale GUID.

NEWSEQUENTIALID è un wrapper sulla funzione UuidCreateSequential di Windows.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

NEWSEQUENTIALID ( )

Tipo restituito

uniqueidentifier

Osservazioni

La funzione NEWSEQUENTIALID() può essere utilizzata solo con vincoli DEFAULT su colonne di tabella di tipo uniqueidentifier. Ad esempio:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) 

Quando viene specificata in espressioni DEFAULT, la funzione NEWSEQUENTIALID() non può essere utilizzata in combinazione con altri operatori scalari. Ad esempio, la seguente operazione non è valida:

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

Nell'esempio precedente myfunction() è una funzione scalare definita dall'utente che accetta e restituisce un valore uniqueidentifier.

Non è possibile fare riferimento a NEWSEQUENTIALID() all'interno di query.

È possibile utilizzare NEWSEQUENTIALID() per generare GUID in modo da limitare i problemi di contesa delle pagine al livello foglia degli indici.

Ogni GUID generato utilizzando NEWSEQUENTIALID () è univoco nel computer. GUID generati utilizzando NEWSEQUENTIALID () sono univoci in più computer solo se il computer di origine dispone di una scheda di rete. Per ulteriori informazioni sui GUID, vedere Utilizzo del tipo di dati uniqueidentifier.