Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Создает идентификатор GUID, имеющий значение, большее любого идентификатора GUID, который был прежде создан на указанном компьютере при помощи этой функции с момента запуска Windows. После перезапуска Windows GUID может начаться снова из нижнего диапазона, но по-прежнему глобально уникальным. Если столбец GUID используется в качестве идентификатора строки, использование NEWSEQUENTIALID может быть быстрее, чем с помощью NEWID функции. Это связано с тем, что функция вызывает случайное NEWID действие и использует меньше кэшированных страниц данных. Использование NEWSEQUENTIALID также помогает полностью заполнить страницы данных и индексов.
Внимание
Если конфиденциальность является проблемой, не используйте эту функцию. Можно угадать значение следующего созданного GUID и, следовательно, получить доступ к данным, связанным с этим GUID.
NEWSEQUENTIALID — это оболочка через функцию Windows UuidCreateSequential с применением некоторых байтовых перетасовок.
Предупреждение
Функция UuidCreateSequential имеет аппаратные зависимости. В SQL Server кластеры последовательных значений могут разрабатываться при перемещении баз данных (таких как содержащиеся базы данных) на другие компьютеры. В Базе данных SQL Azure и при использовании AlwaysOn кластеры последовательных значений могут разрабатываться, если база данных выполняет отработку отказа на другой компьютер.
Соглашения о синтаксисе 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 уникальны на нескольких компьютерах, только если на исходном компьютере есть сетевая карта.