T-SQL

UPDATE pomocí aliasu tabulky

Napsat správně UPDATE příkaz může vypadat jako trivialita, ale opak je pravdou. Nehod, kdy se někomu nezadařilo a oprava dat ze záloh zabrala několik hodin, jsem zažil dost. Dnes si ukážeme alespoň drobné vylepšení, jak správně na UPDATE a věřím,…
T-SQL

Explicitní vložení do IDENTITY sloupce

Pokud máme tabulku, která obsahuje IDENTITY sloupec, generuje SQL Server nového hodnoty pro IDENTITY sloupec automaticky. Pokud přeci jen chceme vložit hodnotu sami a nespoléhat na automatický generátor, stačí použít SET IDENTITY INSERT ON|OFF příkaz, jak ukazuje následující příklad: SET…
T-SQL

COUNT() a eliminace NULL hodnot

Agregační funkce v SQL serveru ignorují hodnoty NULL. V praxi to znamená, že pokud agregujeme data ve sloupcích a některé řádky obsahují NULL hodnoty, tyto hodnoty se do naší agregace nezapočítají. Pro funkce typu SUM() je to očekávané chování, ale…
T-SQL

Window funkce v T-SQL

Základní window funkce v SQL Serveru známe všichni: ROW_NUMBER(),  RANK(), DENSE_RANK() a NTILE(). K nim se v dalších verzích SQL Serveru přidaly ještě funkce LEAD() a LAG(), na ty se ale podíváme někdy příště. Dnešní článek se nebude věnovat detailům…
T-SQL

Vygenerování náhodného čísla pomocí NEWID()

Generování náhodných čísel v SQL Serveru může být čas od času pěkný oříšek, zejména pokud začínající vývojáři sáhnout po funkci RAND(). První, na co narazí, je, že tato funkce generuje stále stejné hodnoty, pokud ji chceme použít v dotazu s…
T-SQL

CTE with multiple anchors

Common Table Expression (CTE) offers a lot of options on how to play with it. One of them is using recursion with an anchor which is in the standard scenario one row. But we can have a more complex anchor:…
T-SQL

Rounding DATETIME values to midnight

DATETIME data type precision for milliseconds is rounded to increments of .000, .003, or .007 which leads to some unexpected behavior from time to time. I.e. if we will try to extract at which day event logged with milliseconds occurred….
T-SQL

Examples of TOP syntax

This article is just a short summary of TOP clause variants we can use. Especially the last one with a subquery isn’t so common and can be something new for you. Consider official documentation for more details on TOP usage…
T-SQL

Composable DML

Composable DML is an extension SQL Server 2008 extension of the OUTPUT clause which one was originally published in SQL Server 2005. OUTPUT is generally returning all rows from the DML where it’s used without an option to filter the…