И двете NEWID()
и NEWSEQUENTIALID()
дайте глобално уникални стойности от тип uniqueidentifier
.
NEWID()
включва произволна активност, така че следващата стойност е непредвидима и се изпълнява по-бавно.
NEWSEQUENTIALID()
не включва произволна активност, така че може да се предвиди следващата генерирана стойност
(не е лесно!) и се изпълнява по-бързо от NEWID()
.
Така че, ако не се притеснявате от прогнозирането на следващата стойност (от съображения за сигурност), можете да използвате NEWSEQUENTIALID()
. Ако сте загрижени за предсказуемостта или нямате нищо против малкото наказание за производителност, можете да използвате NEWID()
.
Въпреки това, в строг смисъл, все още има незначителни шансове GUID, генерирани от различни машини, да имат една и съща стойност. На практика се счита за невъзможно.
Ако искате повече информация, прочетете това:Кой метод за генериране на GUID е най-добрият, за да се гарантира, че GUID е наистина уникален?
Забележка NEWID()
отговаря на RFC 4122
. А другата функция използва алгоритъма на Microsoft за генериране на стойността.