NEWSEQUENTIALID() (Transact-SQL)
Cria um GUID que é maior que qualquer GUID anteriormente gerado por esta função em um computador especificado desde o início do Windows. Após o reinício do Windows, o GUID poderá ser iniciado novamente a partir de um intervalo inferior, mas ainda será globalmente exclusivo. 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. Isso ocorre porque a função NEWID provoca atividade aleatória e usa menos páginas de dados do cache. O uso de NEWSEQUENTIALID também ajuda a preencher completamente as páginas de dados e índice.
Importante |
---|
Se a privacidade for uma preocupação, não use esta função. É possível adivinhar o valor do próximo GUID gerado e, assim, acessar os dados associados ao GUID. |
NEWSEQUENTIALID é um wrapper sobre a função UuidCreateSequential do Windows.
Sintaxe
NEWSEQUENTIALID ( )
Tipo de retorno
uniqueidentifier
Comentários
NEWSEQUENTIALID() só pode ser usada com restrições DEFAULT em colunas de tabela do tipo uniqueidentifier. Por exemplo:
CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID())
Quando NEWSEQUENTIALID() for usada em expressões DEFAULT, não pode ser combinada com outros operadores escalares. Por exemplo, não é possível executar a seguinte consulta:
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.
NEWSEQUENTIALID() não pode ser referenciada em consultas.
Você pode usar NEWSEQUENTIALID() para gerar GUIDs e reduzir a contenção da página no nível folha de índices.
Cada GUID gerado usando NEWSEQUENTIALID () é exclusivo nesse computador. Os GUIDs gerados com NEWSEQUENTIALID () serão exclusivos entre vários computadores somente se o computador de origem tiver uma placa de rede. Para obter mais informações sobre GUIDs, consulte Usando dados uniqueidentifier.