Какова истинная необходимость последовательности в Sql Server 2012? - PullRequest
2 голосов
/ 09 декабря 2010

В SQL Server 2012 (Denali) у нас появилась новая функция Sequence .Рассмотрим приведенную ниже программу

/****** Create Sequence Object ******/
CREATE SEQUENCE GenerateSequence
START WITH 1
INCREMENT BY 1;

/****** Create a test Table ******/
Create TABLE tblTest
(
ID int NOT NULL PRIMARY KEY,
Name varchar(100) NOT NULL,
Age int NOT NULL
);

/****** Insert Some Records ******/
INSERT INTO tblTest(ID, Name, Age)
VALUES (NEXT VALUE FOR GenerateSequence, 'Name1',10),
(NEXT VALUE FOR GenerateSequence, 'Name2',20),
(NEXT VALUE FOR GenerateSequence, 'Name3',30),
(NEXT VALUE FOR GenerateSequence, 'Name4',40);

/****** Display result******/
SELECT * FROM tblTest;

Вывод

ID Name     Age
1  Name1    10
2  Name2    20
3  Name3    30
4  Name4    40

Вместо этого мы можем использовать столбец идентификаторов, например

Create TABLE tblTest
(
ID int NOT NULL PRIMARY KEY Identity,
Name varchar(100) NOT NULL,
Age int NOT NULL
);

, и можем заполнять как

INSERT INTO tblTest(Name, Age)
VALUES ('Name1',10),
VALUES ('Name2',20)... 

и т. Д.чтобы получить тот же результат

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

1 Ответ

2 голосов
/ 09 декабря 2010

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

Взгляните на Последовательности SQL и Создать последовательность чисел в SQL Server 2011

Объект последовательности SQL Server генерирует последовательность чисел, как столбец идентификаторов в таблицах sql.Но преимущество порядковых номеров в том, что объект порядкового номера не ограничивается одной таблицей sql.

...