Ambos
NEWID()
e NEWSEQUENTIALID()
forneça valores globalmente exclusivos do tipo uniqueidentifier
. NEWID() envolve atividade aleatória, portanto, o próximo valor é imprevisível e sua execução é mais lenta. NEWSEQUENTIALID() não envolve atividade aleatória, portanto, o próximo valor gerado pode ser previsto
(não é fácil!) e executa mais rápido que NEWID() . Portanto, se você não estiver preocupado com a previsão do próximo valor (por motivos de segurança), poderá usar
NEWSEQUENTIALID() . Se você está preocupado com a previsibilidade ou não se importa com a pequena penalidade de desempenho, você pode usar NEWID() . No entanto, em sentido estrito, ainda há chances insignificantes de que GUIDs gerados por máquinas diferentes tenham o mesmo valor. Na prática, é considerado impossível.
Se você quiser mais informações, leia isto:Qual método para gerar GUIDs é melhor para garantir que o GUID seja realmente único?
Observe
NEWID() está em conformidade com RFC 4122
. E a outra função usa um algoritmo da Microsoft para gerar o valor.