SQL Server 2008 Express Edition - как создать последовательность - PullRequest
6 голосов
/ 03 ноября 2011

Я использую SQL Server 2008 Express Edition.

Я хочу создать последовательность с этим кодом:

CREATE SEQUENCE Postoffice_seq
    AS bigint
    START WITH 1
    INCREMENT BY 1
    MINVALUE 0
    NO MAXVALUE;

и ошибка

Сообщение 343, Уровень 15, Состояние 1, Строка 1
Неизвестный тип объекта «SEQUENCE», используемый в операторе CREATE, DROP или ALTER.

Кто-нибудь может мне помочь?

С наилучшими пожеланиями!

Ответы [ 2 ]

10 голосов
/ 03 ноября 2011

SQL Server 2008 еще не знает последовательности - это будет введено в SQL Server 2012 (fka "Denali").

Для почти такого же результата используйте вместо этого столбец INT IDENTITY:

CREATE TABLE dbo.YourTable
  (YourID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
    ....
  )

Столбец IDENTITY автоматически заполняется SQL Server при вставке новой строки в таблицу.SQL Server обеспечивает монотонное увеличение, начиная с 1, увеличивая на 1 (при необходимости вы можете установить для них разные значения).

Обычно при вставке строки в такую ​​таблицу необходимо не указывайте столбец IDENTITY в списке столбцов для вставки значений - SQL Server сделает это автоматически.

0 голосов
/ 04 ноября 2011

Объекты последовательности являются новыми в SQL Denali, SQL Server 2012. Вот несколько примеров кодов http://www.kodyaz.com/sql-server-2012/number-of-sequences-in-sql-server-2012-using-sequence-objects.aspx для объектов последовательности в SQL 2012

. Вы можете найти реализацию таблицы последовательности для SQL Server 2008 здесь:http://www.kodyaz.com/t-sql/sql-server-instead-of-trigger-with-sequence-table.aspx

...