Pro generování ID (primárních klíčů) v aplikačních databázích nebo primárních klíčů – surrogate key v datových skladech existuje řada přístupů. Většinou jsou používány GUIDy nebo numerická ID. Guidy jsou používány...
Před časem jsem zde na webu zveřejnil článek o RAISERROR příkazu, který vyvolá exception s tím, že jsme schopni přes severity (závažnost) ovlivnit, jestli skript bude nebo nebude pokračovat...
V určitých situacích potřebujeme uvnitř SQL skriptu zavolat chybu a skript přerušit. Typickým případe je třeba nesplnění nějakého data quality checku nebo potřeba zavilat příkaz uvnitř BEGIN /END TRY...
Každý ví, že by to měl dělat, ale málokdo to skutečně dělá. Řeč je formátování sql kódu a jeho přehlednosti. Zejména ve větších týmech dokážou pravidla ohledně formátování zjednodušit...
SQL Synonym je příkaz, který je v SQL Server již od verze SQL Server 2005. Tato funkce slouží k tomu, že můžeme vytvořit referenci (alternativní jméno) na objekt v...
IDENTITY je v SQL Server tabulce vlastnost atributu (sloupce), která umožňuje automatické číslování záznamů, které jsou vkládány do tabulky. Vytváříme tak automatický inkrement s jedinečnými hodnotami bez toho abychom...
Databázové schéma je prostor (kontejner), který sdružuje databázové objekty – tabulky, pohledy, procedury, atd. Primárním důvodem pro zakládání schémat je logické oddělení určitých objektů od jiných a možnost upravovat...
Nedávno mi psal do komentáře David, že by jej potěšil článek o kurzorech (Chybí vám tu nějaký článek? Napiště si o něj). Kurzor (loop nebo cyklus) je kus kódu,...
Dříve jsem napsal větší článek, vé kterém jsem popisoval jak založit View v sql. V tomto článku se nenápadně nachází jeden SQL příkaz, který bych chtěl více objasnit zde....
V minulém článku jsem popisoval, jak správně založit do sql tabulky hierarchii se zaměstnanci (viz. článek Jak správně vytvořit parent-child strukturu). Nyní bude řeč o tom, jak se do...
Tempová tabulka s hashtagem # nebo ## je dočasná tabulka, která je uložena v systémové databázi tempdb. Tabulka existuje pouze po dobu, po kterou je otevřena user session ID. Rozeznáváme...
Možná jste si všimli, že se při generování skriptů v SQL Server používá v syntaxi příkaz nebo lépe řečeno separátor GO. Tento separátor se používá k oddělení dávek v...
Co takhle rozšířit si agregační GROUP BY klauzuli o využití užitečných operátorů? GROUP BY používáme v SQL při agregačních operacích a platí, že při jejím použítí dochází k agregaci přes všechny...
Příkaz SQL TRY CATCH je navržen pro kontrolu code flow v případě, že nastane chybová situace (Error handling). Tato konstrukce obsahuje 2 bloky s tím, že je zde možné použít také...
Operátor UNION ALL v SQL umožnujě provést sjednocení 2 výsledky dotazů s tím, že neodstraní duplicity v dotazech. Operátor vrátí všechny záznamy z obou dotazů bez ohledu na duplicity, které v nich...
Příkaz IF se používá ke kontrolování toku kódu hlavně při operacích, kde provádíme nějaké zásahy do db (DDL, DML operace) – třeba procedury. Můžete si ho celkem jednoduše splést...
SQL CTE neboli Common table expression je zjednodušeně dočasná tabulka (lépe řečeno result set) v podobě výrazu, po jehož deklarování pomocí klauzule WITH se na něj můžeme odkázat v...
CASE je výraz (expression), který umožňuje aplikovat podmíněnou logiku v sql skritpu. Jde o logiku, kdy na základě podmínky (ve WHEN) vrátí hodnotu definovanou v THEN části. Existují 2...
Pořadí, v jakém se SQL klauzule do dotazu zadávají je všeobecně celkem známé. Pořadí logického SQL zpracování dotazu (logical query processing) je ale jiné než pořadí, v jakém je...
OVER příkaz můžeme v SQL zařadit do příkazů pracujících s tzv. Window functions. Tyto typy funkcí nám umožňují na data pohlížet nejen agregovaně (přes GROUP BY), ale můžeme se...