poniedziałek, 5 września 2011

MS SQL Server 2011 nowe elementy w TSQLu

Nowa wersja SQL Server 2011 wprowadzi kilka nowości odnośnie języka. Dzisiaj zaprezentuje kilka nowych funkcji które pojawią się wraz z premierą. Warto już teraz poznać niektóre z nich, z pewnością ułatwią pracę wraz z finalną wersją produktu.

  1. IIF(warunek, prawda,fałsz). Funkcja umożliwiająca zastąpienie instrukcji
CASE WHEN warunek THEN a ELSE b END; 
Z pewnością ułatwi i "uczytelni" zapis skomplikowanych wyrażeń. Wystarczy teraz napisać:
IIF(warunek, a,b)
Oczywiście można zagnieżdżać instrukcję. Od strony MS SQL Server, IIF zostanie rozwinięty do CASE, jednak z mojego punktu widzenia instrukcja IIF jest znacznie bardziej czytelna.

  1.  Concat(string,string,....) - funkcja łączy w jeden ciąg znaków (string). Cóż wielu może się wydawać, że istnienie takiej funkcji ma raczej niezbyt duże zastosowanie, jednak biorąc pod uwagę, że w zależności od od typu funkcja sama zamienia wszystkie argumenty na łańcuchy (null traktuje jako pusty ciąg znaków) to już jej przydatność rośnie. Przykład:
Concat('Ala',' ','ma',' ',' 2 ', 'koty);
  1.  FORMAT(value, format) - funkcja z pewnością znana dobrze wszystkim programistą C#. Pozwala dowolnie sformatować ciąg znaków. Należy pamiętać, że aby była możliwość skorzystania z tej funkcji na serwerze musi być zainstalowany .NET Framework.
  2. PARSE(string AS typ) - funkcja czerpiąca z .NET frameworka i działająca jak popularne funkcje dodawane do typów prostych Parse. Pozwala na prostą konwersję jednego typu do drugiego
  3. TRY_PARSE(string AS typ) - bezpieczniejsza wersja instrukcji PARSE.W przypadku niepowodzenia podczas konwersji funkcja zwróci NULL a nie tak jak w przypadku funkcji PARSE rzuci błędem.
  4. EOMONTH(data_startowa, [offset]) - zwraca ostatni dzień miesiąca - przydatny jeżeli chcemy dowiedzieć się jaki dzień jest ostatnim w danym miesiącu. Dodatkowo możemy dodać lub odjąć żądaną ilość dni.
  5. DATEFROMPARTS(rok,miesiąc,dzień) - konwertuje części daty na typ date
  6. TIMEFROMPARTS(godziny,minuty,sekundy,część ułamkowa, dokładność) - podobnie jak w poprzedniej funkcji z tym że zwraca typ time
  7.  
Wymieniłem tutaj tylko kilka nowych funkcji które zostaną dołączone do nowego wydania SQL Servera. W finalnej wersji z pewnością nie zabraknie kolejnych udoskonaleń/nowości.

Brak komentarzy:

Prześlij komentarz