Tag Archives: Error handling

SQL THROW zavolání výjimky – alternativa k RAISERROR a rozdíly

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 dále. Příkaz THROW je alternativní příkaz, který byl poprvé uveden v rámci SQL Server 2012. Syntaxe THROW Syntaxe THROW je v porovnání s RAISERROR jednodušší. Pro… Read More »

SQL RAISERROR – Jak zavolat ve skriptu error a přerušit skript

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 BEGIN/END CATCH konstrukce. V podobných případech můžeme použít příkaz RAISERROR nebo novější příkaz THROW. V tomto článku se podíváme na první zmíněný příkaz. Příkaz THROW je… Read More »

SQL Chyba – Conversion failed when converting the varchar value to data type int

Chybu Conversion failed when converting the varchar value to data type int vypíše SQL Server v momentě, kdy se snažíme hodnotu, která je uložena jako datový typ varchar (text) konvertovat na datový typ INTEGER. To nemusí být problém pokud máme jako varchar uložena čísla, ale problém nastane pokud se nám mezi tato čísla zamíchá nějaký text. Pokud… Read More »

SQL Error hlášky a závažnost (severity) – sys.messages + Popis

V SQL Server existuje systémová tabulka, ve které jsou uloženy všechny možné Error stavy a jejich závažnost = severity. Error severity nabývá hodnot 0-25 a definuje závažnost chyby. Všechny zprávy se kterými se můžeme v SQL Server setkat jsou uloženy v tabulce sys.messages. USE MASTER SELECT * FROM SYS.MESSAGES WHERE language_id = 1033 Tabulka obsahuje… Read More »

SQL TRY CATCH & Error handling

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é transakci (viz článek o Transakcích). Pokud nastane chyba v prvním bloku – TRY..END , tak je aktivován mechanismus v CATCH..END bloku. Syntaxe SQL TRY CATCH BEGIN TRY BEGIN TRANSACTION… Read More »

SQL Transakce COMMIT ROLLBACK – předcházejte průšvihům

Jako transakci označujeme v SQL logickou množinu nebo sekvence operací, která je do této transakce patří. SQL Transakce můžeme použít pokud nad databázemi provádíme nějaké změny. Všechny prováděné změny jsou poté do této transakce zahrnuty. Můžeme je rozdělit na systémové a uživatelské transakce. Výhodou používání transakcí je to, že provedené změny jsou odvolatelné a transakci musíme… Read More »