Eine Neuerung, aber keine neue Erfindung, sind Sequences. Bei Oracle oder DB2 schon lang zu haben, werden diese erst in Denali SQL 11 eingeführt.
Sequenzen stellen eine Möglichkeit dar Zahlenreihen unabhängig (auch ausserhalb von Tabellen) transaktional zu erzeugen.
Folgendes Beispiel soll dies erläutern:
--anlegen der Sequence create sequence KD_SQL
go
Die Sequenzen können dabei mit verschiedensten Optionen erstellt werden:
--Standardmäßig wird int mit Startwert: -2147483648 und Inkrement 1 vorgegeben select name, minimum_value, maximum_value, increment,* from sys.sequences --Alternativ kann der Inkrement auch selbst vorgegeben werden create sequence KD_SEQ2 as smallint start with 0 increment by 1 --der nächste kann so abgefragt werden Select next value for kd_seq --und erhöht den Inkrement select next value for KD_SEQ2 go 3
Für die Verwendung von Sequences wird hier eine Demotabelle “Kunden” mit einem PK erstellt. Auf den Inkrementwert wird verzichtet. Dieser soll von der Sequence bedient werden.
--Demotabelle für Kunden create table kunden ( kdid smallint not null primary key, Nachname varchar(50), etc varchar(50) ) insert into kunden (kdid, Nachname, etc) values (next value FOR KD_Seq2, 'Maier', 'xy'), (next value FOR KD_Seq2, 'Schmitt', 'xx'), (next value FOR KD_Seq2, 'Müller', 'zz') select * from kunden
--Auch das Zuweisen zu einer Variablen ist möglich declare @nextVal int = Next Value for kd_seq2 select @nextVal
--zyklische Sequenzen..hier von 0 bis 5 create sequence Cycle_SEQ as tinyint Start with 0 increment by 1 minvalue 0 maxvalue 5 --5 cycle; -- ! --hinzufügen einer neunen Spalte für die wiederholende Sequenz alter table kunden add KatID smallint; go update kunden set KatID = next value for cycle_SEQ select * from kunden
Sofern es mal nötig sein sollten, können Sequences auch restartet werden. Optional sogar mit neuem Startwert.
--Sequenze restarten.. auch ab bestimmter Stelle Alter sequence KD_SEQ2 restart --with 100;
In SQL Server 2016 wurde das sog. dynamic data masking eingeführt. Eine Möglichkeit Daten bei…
Seit Sharepoint Server 2007 präsentiert sich die Installation immer auf die gleiche Weise. Gerade mal,…
Es weihnachtet! Gerade bekam ich von einer Kollegin Plätzchen angeboten mit der Größe eines Diskus…
Nein, bitte nicht verwechseln: temporal tables haben nichts zu tun mit temporary tables table variables…
SQL Server 2016.. habe ich schon erwähnt, dass ich den ziemlich cool finde? Wollen wir…
Nach langer Zeit wieder mal eine Artikel von mir.. der mich besonders erfreut. SQL Server…
View Comments