Альтернатива для выбора <sequence>.nextval из двойного Oracle в SQL Server? - PullRequest
1 голос
/ 23 января 2012

Есть ли способ создать уникальную последовательность нет в SQL Server

select <sequence>.nextval from dual

У нас есть вышеуказанный код для Oracle, который создаст уникальный номер, и этот номер не может использоваться никакими другими.

Таким же образом, как я могу создать уникальный порядковый номер в SQL Server ????

Кто-нибудь, помогите мне в этом

Ответы [ 2 ]

1 голос
/ 23 января 2012

Последовательности добавляются в SQL Server 2012 - но это еще не совсем выпущено. Если вы хотите опробовать их заранее, кандидаты на выпуск продукта будут иметь их.

Если последовательность должна использоваться только одной таблицей, вы можете использовать функцию столбца идентификаторов, которая позволяет указать начальный номер и добавленную стоимость для каждой записи.

Если вы ищете последовательность, которая может быть использована для нескольких таблиц, вам нужно будет создать выделенную таблицу на сервере SQL, которая имеет один столбец поля идентификатора - и всякий раз, когда вам нужен .nextval, Вы бы вставили строку в таблицу, чтобы получить новый номер. Таблица, чем действует как последовательность. Таблица будет заполняться с течением времени, нет необходимости хранить записи в таблице, удостоверение хранит его текущее значение и приращение для получения следующего значения в системной таблице.

0 голосов
/ 23 января 2012

Только предстоящий SQL Server 2012 поддерживает объект последовательности соответствия стандарт SQL. :-( В любой текущей версии SQL Server (2008 R2 и ниже) вы должны использовать столбец с ограничением идентификации, как в:

CREATE TABLE t1
(
   id       int identity(1,1),
   somecol  varchar(50)
);

Это сгенерирует значения в столбце id, начиная с 1 и увеличивая их с шагом 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...