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

verwenden
Create 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

bekommen

Und was dann zusätzliche benifit wir durch die Verwendung Sequenz erreichen?

War es hilfreich?

Lösung

Dies kann zwischen verschiedenen Datenbanktabellen verwendet werden, so dass es der ID eindeutig zwischen mehreren Tabellen hält.

Haben Sie einen Blick auf

scroll top