Was ist die wahre Notwendigkeit der Sequenz in SQL Server 2012?
-
10-10-2019 - |
Frage
In SQL Server 2012 (Denali), haben wir eine neue Funktion Sequence . Betrachten Sie die folgende Programm
/****** 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;
Output
ID Name Age
1 Name1 10
2 Name2 20
3 Name3 30
4 Name4 40
Statt dessen können wir eine Identitätsspalte wie
verwendenCreate TABLE tblTest
(
ID int NOT NULL PRIMARY KEY Identity,
Name varchar(100) NOT NULL,
Age int NOT NULL
);
und kann wie bevölkern
INSERT INTO tblTest(Name, Age)
VALUES ('Name1',10),
VALUES ('Name2',20)...
usw. die gleiche Ausgabe
bekommenUnd was dann zusätzliche benifit wir durch die Verwendung Sequenz erreichen?
Lösung
Dies kann zwischen verschiedenen Datenbanktabellen verwendet werden, so dass es der ID eindeutig zwischen mehreren Tabellen hält.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow