Det mest intressanta som man kommer använda dagligen om ett tag är framför allt den nya datumhanteringen och lite hur man kan deklarera variabler och tilldela dem värden på en gång.
Datum
Datumhanteringer blir lite annorlunda men bibehåller även den gamla.
Datum och tid kan nu vara mer precis. Tidiagare kunde DATETIME datatypen vara år 1753-9999 men nu kan DATE datatypen vara år 0001-9999 samt att DATETIME hade en precision på 0.00333 sekunder medan TIME nu har en variabel precision på 0 till 7 decimaler på en sekund (ända ner till hundradels nanosekund).
Alltså så finns det idag dessa datum datatyper:
- DATETIME (den gamla)
- DATETIME2 (NY! den nya som har både den större datumet och den mer precisa tiden)
- DATETIMEOFFSET (NY! som DATETIME2 men med stöd för Time Zone Offset från UTC)
- DATE (NY! hanterar bara datum från 0001-01-01 till 9999-12-31)
- TIME (NY! variabel precision ända ner till hundradels nanosekund)
DATETIME och de nya datatyperna använder en del samma funktioner såsom DATENAME, DATEPART, DATEDIFF, DATEADD där man skickar in en datepart som nu även kan vara microsekunder, nanosekunder och TZoffset.
Funktioner enbart för de nya datatyperna är SYSDATETIME, SYSUTCDATETIME, SYSDATETIMEOFFSET.
Några nice funktioner (som har funnits sedan tidigare) för att hantera Localization och formatering på datum i SQL.
SET DATEFIRST
SET DATEFORMAT
SET LANGUAGE
Table som datatyp och värde
Numera finns även TABLE som datatyp och kan användas som parameter för lagrade procedurer.
T.ex: DECLARE @t TABLE (id int, name varchar(20));
Möjlighet att tilldela och deklarera variabler samtidigt
T.ex: DECLARE @i int = 4;
MERGE Statement
Detta kommando kan användas för att enkelt förena data från en table till en table. Det finns lite flaggor för att sätta om datat ska matcha eller ej. Den gör då en insert, update och delete utifrån om datat matchar eller ej.