В документации CREATE SEQUENCE
по T-SQL видно, что CREATE SEQUENCE
команда не имеет ORDER
параметров.
Для сравнения, документы Oracle дляCREATE SEQUENCE
показа параметров ORDER
/ NOORDER
:
ORDER
Укажите,
ORDER
чтобы гарантировать, что порядковые номера генерируются в порядке запроса. Это предложение полезно, если вы используете порядковые номера в качестве меток времени. Гарантирующий порядок обычно не важен для последовательностей, используемых для генерации первичных ключей.
ORDER
необходимо только для гарантии упорядоченной генерации, если вы используете Oracle Database с Real Application Clusters. Если вы используете эксклюзивный режим, порядковые номера всегда генерируются по порядку.
NOORDER
Укажите,
NOORDER
если вы не хотите гарантировать, что порядковые номера генерируются в порядке запроса. Это по умолчанию.
Предоставляет ли Microsoft SQL Server строгие ограничения на порядок для SEQUENCE
s? Или Microsoft не считает это важным в целом?
источник
CREATE SEQUENCE
инструкциях я столкнулся с параметром ORDER, и я просто хотел быть уверен, что это не будет проблемой (я не уверен, почему именноORDER
был добавлен в первую очередь, поэтому я подумал, что может спросить на всякий случай).Ответы:
В SQL Server все порядковые номера генерируются в одном экземпляре, поэтому они уже изначально упорядочены. И если вы просто используете их как уникальные числа, это не должно иметь никакого значения.
Реализация Oracle отличается тем, что в среде RAC (не во всех реализациях Oracle) два порядковых номера могут быть сгенерированы двумя разными «экземплярами» (это неправильный термин для Oracle, но просто вывод эквивалентности в SQL Server). Обычно вам было бы все равно, если запрашиваемый сначала был медленнее и получал большее число, чем запрашиваемый позже - если, как говорят в документации Oracle, вы не использовали последовательности в качестве временных меток, чтобы действительно отражать порядок исходного запроса.
источник