Да, последовательности допускают более одного идентификатора, например столбцы в atable, но здесь есть некоторые проблемы. В типичном сценарии разработки я видел, как разработчики вручную вставляли допустимые значения в столбец (который предполагается вставить через последовательность). Позже, когда последовательность попытается вставить значение в таблицу, она может потерпеть неудачу из-за нарушения уникального ключа.
Кроме того, в сценарии с несколькими разработчиками / несколькими поставщиками разработчики могут использовать одну и ту же последовательность для нескольких таблиц (поскольку последовательности не связаны с таблицами). Это может привести к отсутствию значений в одной из таблиц. то есть tableA может получить значение 1, в то время как tableB может использовать значение 2, а tableA получит 3. Это означает, что tableA будет иметь 1 и 3 (отсутствует 2).
Помимо этого, есть еще один сценарий, когда у вас есть таблица, которая усекается каждый день. Поскольку последовательности не имеют какой-либо связи с таблицей, усеченная таблица продолжит использовать Seq.NextVal снова (если вы вручную не сбросите последовательность), что приведет к пропущенным значениям или даже к более опасной ошибке переполнения артметики через некоторое время.
В силу вышеприведенной причины я считаю, что последовательности Oracle и столбец идентификаторов SQL-сервера хороши для своих целей. Я бы предпочел, чтобы oracle реализовал концепцию столбца Identity, а SQL Server - концепцию последовательности, чтобы разработчики могли реализовать любое из двух в соответствии со своими требованиями.