Поделиться через


NEWSEQUENTIALID() (Transact-SQL)

Создает идентификатор GUID, имеющий значение, большее любого идентификатора GUID, который был прежде создан на указанном компьютере при помощи этой функции с момента запуска Windows. После перезагрузки Windows идентификатор GUID может вновь начинаться с более низкого диапазона, однако останется глобально уникальным. Если столбец GUID используется в качестве идентификатора строки, использование NEWSEQUENTIALID может ускорить работу по сравнению с использованием функции NEWID. поскольку функция NEWID вызывает непредсказуемый уровень нагрузки и использует меньшее число кэшированных страниц данных. Использование NEWSEQUENTIALID также помогает полностью заполнять страницы данных и страницы индекса.

Важное примечаниеВажно!

Если важна конфиденциальность, то не следует применять эту функцию. Значение следующего формируемого идентификатора GUID можно предугадать и, следовательно, получить доступ к данным, связанным с этим идентификатором GUID.

NEWSEQUENTIALID является оболочкой для функции Windows UuidCreateSequential.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

NEWSEQUENTIALID ( )

Тип возвращаемых данных

uniqueidentifier

Замечания

Функция NEWSEQUENTIALID() может быть использована только для ограничений DEFAULT для столбцов таблицы типа uniqueidentifier. Например:

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) 

Когда функция NEWSEQUENTIALID() используется в выражениях DEFAULT, она не может быть объединена с другими скалярными операторами. Например, нельзя выполнить следующее:

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

В предыдущем примере myfunction() является пользовательской скалярной функцией, которая принимает и возвращает значение uniqueidentifier.

На функцию NEWSEQUENTIALID() нельзя ссылаться в запросах.

Функцию NEWSEQUENTIALID() можно использовать для формирования идентификаторов GUID, чтобы уменьшить состязание страниц на конечном уровне индексов.

Каждый идентификатор GUID, сформированный с помощью функции NEWSEQUENTIALID(), является уникальным на данном компьютере. Идентификаторы GUID, сформированные с помощью функции NEWSEQUENTIALID(), становятся уникальными для нескольких компьютеров, только если в компьютере-источнике имеется сетевая плата.

См. также

Справочник

NEWID (Transact-SQL)

Операторы сравнения (Transact-SQL)