Home » BI / SQL » Neue T-SQL Funktionen im SQL Server 2012 (Teil 1/4)
Neue T-SQL Funktionen im SQL Server 2012 (Teil 1/4)
30. Januar 2012
Die nächste Version des SQL-Servers bringt auch eine Hand voll neuer T-SQL Funktionen.
Im ersten Artikel einer Serie möchte ich die neue Funktion “SEQUENCE” vorstellen.
Eine Sequence ist ein benutzerdefiniertes Objekt, das eine definierte Zahlenfolge erzeugen kann. Diese funktioniert wie die IDENTITY Funktion mit einem Startwert und dem Inkrement. Ein neuer Wert wird mit NEXT VALUE FOR erzeugt. Damit könnte z.B. ein fortlaufender Wert über mehrere Tabellen hinweg erzeugt werden.
Die Metadaten der Sequence werden in der System Tabelle sys.sequences abgelegt und können nun in Abfragen verwendet werden.
/****** Tabelle erstellen******/ DECLARE @Produkt TABLE ( ID intNOTNULLPRIMARYKEY, Name nvarchar(100) NOTNULL );
/****** Daten erzeugen ******/ INSERT @Produkt (ID, Name) VALUES (NEXTVALUEFOR SequenceBeispiel, 'Produkt A'), (NEXTVALUEFOR SequenceBeispiel, 'Produkt B'), (NEXTVALUEFOR SequenceBeispiel, 'Produkt C'); /****** Show the Data ******/ SELECT * FROM @Produkt;
Und hier das Ergebnis der Abfrage:
ID FullName 1001 Produkt A 1002 Produkt B 1003 Produkt C
Eine SEQUENCE kann auch modifiziert werden um z.B. den Zähler zurück zu setzen:
ALTERSEQUENCE dbo.foo RESTART WITH 20
Wichtig ist auch, daß eine SEQUENCE nicht transaktional konsistent ist. Das bedeutet mit einem Rollback werden nicht die bereits verbrauchten Werte zurück gerollt!
Im nächsten Teil der Serie erläutere ich welche neuen Datums- und Zeitfunktionen im SQL Server 2012 hinzugekommen sind.