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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure SQL nãoAzure Synapse Analytics (SQL DW) nãoData Warehouse Paralelo APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cria um GUID que é maior que qualquer GUID anteriormente gerado por esta função em um computador especificado desde o início do Windows.Creates a GUID that is greater than any GUID previously generated by this function on a specified computer since Windows was started. Após o reinício do Windows, o GUID poderá ser iniciado novamente a partir de um intervalo inferior, mas ainda será globalmente exclusivo.After restarting Windows, the GUID can start again from a lower range, but is still globally unique. Quando uma coluna de GUID é usada como um identificador de linha, usar NEWSEQUENTIALID pode ser mais rápido do que usar a função NEWID.When a GUID column is used as a row identifier, using NEWSEQUENTIALID can be faster than using the NEWID function. Isso ocorre porque a função NEWID provoca atividade aleatória e usa menos páginas de dados do cache.This is because the NEWID function causes random activity and uses fewer cached data pages. O uso de NEWSEQUENTIALID também ajuda a preencher completamente as páginas de dados e índice.Using NEWSEQUENTIALID also helps to completely fill the data and index pages.

Importante

Se a privacidade for uma preocupação, não use esta função.If privacy is a concern, do not use this function. É possível adivinhar o valor do próximo GUID gerado e, assim, acessar os dados associados ao GUID.It is possible to guess the value of the next generated GUID and, therefore, access data associated with that GUID.

NEWSEQUENTIALID é um wrapper na função UuidCreateSequential do Windows, com embaralhamento de bytes aplicado.NEWSEQUENTIALID is a wrapper over the Windows UuidCreateSequential function, with some byte shuffling applied.

Aviso

A função UuidCreateSequential tem dependências de hardware.The UuidCreateSequential function has hardware dependencies. No SQL ServerSQL Server, clusters de valores sequenciais podem se desenvolver quando os bancos de dados (como bancos de dados independentes) são movidos para outros computadores.On SQL ServerSQL Server, clusters of sequential values can develop when databases (such as contained databases) are moved to other computers. Ao usar o Always On e no Banco de Dados SQLSQL Database, clusters de valores sequenciais podem se desenvolver se o banco de dados faz failover para outro computador.When using Always On and on Banco de Dados SQLSQL Database, clusters of sequential values can develop if the database fails over to a different computer.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

  
NEWSEQUENTIALID ( )  

Tipo de retornoReturn Type

uniqueidentifieruniqueidentifier

RemarksRemarks

NEWSEQUENTIALID() apenas pode ser usado com restrições DEFAULT em colunas de tabela do tipo uniqueidentifier.NEWSEQUENTIALID() can only be used with DEFAULT constraints on table columns of type uniqueidentifier. Por exemplo:For example:

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

Quando NEWSEQUENTIALID() for usada em expressões DEFAULT, não pode ser combinada com outros operadores escalares.When NEWSEQUENTIALID() is used in DEFAULT expressions, it cannot be combined with other scalar operators. Por exemplo, não é possível executar a seguinte consulta:For example, you cannot execute the following:

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

No exemplo anterior, myfunction() é uma função escalar de escalar definida pelo usuário que aceita e retorna um valor uniqueidentifier.In the previous example, myfunction() is a scalar user-defined scalar function that accepts and returns a uniqueidentifier value.

NEWSEQUENTIALID() não pode ser referenciada em consultas.NEWSEQUENTIALID cannot be referenced in queries.

Você pode usar NEWSEQUENTIALID para gerar GUIDs e reduzir a contenção da página no nível folha de índices.You can use NEWSEQUENTIALID to generate GUIDs to reduce page splits and random IO at the leaf level of indexes.

Cada GUID gerado usando NEWSEQUENTIALID é exclusivo nesse computador.Each GUID generated by using NEWSEQUENTIALID is unique on that computer. Os GUIDs gerados com NEWSEQUENTIALID serão exclusivos entre vários computadores somente se o computador de origem tiver uma placa de rede.GUIDs generated by using NEWSEQUENTIALID are unique across multiple computers only if the source computer has a network card.

Consulte TambémSee Also

NEWID (Transact-SQL) NEWID (Transact-SQL)
Operadores de comparação (Transact-SQL)Comparison Operators (Transact-SQL)