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