In SQL Server 2012 (Denali) haben wir ein neues Feature Sequenz. Betrachten Sie das folgende ProgrammWas ist die wahre Notwendigkeit der Sequenz in Sql Server 2012?
/****** 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;
Ausgabe
ID Name Age
1 Name1 10
2 Name2 20
3 Name3 30
4 Name4 40
Statt dessen wir eine Identitätsspalte wie
Create TABLE tblTest
(
ID int NOT NULL PRIMARY KEY Identity,
Name varchar(100) NOT NULL,
Age int NOT NULL
);
verwenden können, und füllen kann wie
INSERT INTO tblTest(Name, Age)
VALUES ('Name1',10),
VALUES ('Name2',20)...
etc. Erhalten Sie die gleiche Ausgabe
Dann was zusätzlichen Nutzen wir durch die Verwendung von Sequenz erreichen?
Ernsthaft - SQL Server erhält Sequenzen ?! SNOOPY TANZ! –
Um die manuelle Erzeugung dieser Art von IDs zu vermeiden nehme ich an ... X-) –