Archív tagu: Error hlášky v SQL

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… Čtěte více »

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… Čtěte více »

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… Čtěte více »

SQL View WITH SCHEMABINDING – hlídací pes nad view

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. Jde o příkaz SCHEMABINDING, který se používá při založení view. SCHEMABINDING si můžeme představit jako hlídacího psa. Ten kontroluje, jestli v podkladové tabulce nedochází ke změnám,… Čtěte více »

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… Čtěte více »

SQL Chyba: Login failed for user – co s tím?

SQL Error “Login failed for user <uživatelské jméno>. The user is not associated with a trusted SQL Server connection” je vcelku častou chybou, kterou uživatelé a administrátoři řeší. Problémem je, že SQL Server nedokáže identifikovat uživatelské jméno. Takto vypadá Error message: Jaké jsou nejčastější důvody? Špatně zadané přihlašovací údaje nebo typ autentizace (Windows vs SQL) Login… Čtěte více »

SQL Chyba: Saving changes is not permitted

Při práci s databázovými objekty se můžeme dostat do situace kdy chceme změnit vlastnost objektu, např. změnit datový typ u sloupce tabulky přes design tabulky v SQL Server management studio. Pokud jsou v tabulce data, tak vám SQL server při pokusu o změnu pravděpodobně vypíše chybu “Saving changes is not permitted. The changes you have… Čtěte více »

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… Čtěte více »