T-SQL

Conversion of some values to BIT

Converting numeric values looks like to be intuitive but it can still surprise you. Doing conversion from various different data types means that every value which isn’t 0 (zero) will be converted as TRUE. And that’s not something you will expect naturally. You can test this behavior by yourself. Simply…

Read more
T-SQL

Mazání dat pomocí sp_MSForEachTable

Pomocí nedokumentované procedury sp_MSForEachTable můžeme spouštět dotazy a operace nad všemi tabulkami v databázi. Že je procedura nedokumentovaná znamená, že není zmíněna v SQL Server dokumentaci (BOL) a je oficiálně určena pouze k internímu použití. Na druhou stranu je procedura používání již spoustu let i běžnými uživateli SQL Serveru a…
T-SQL

Výpis adresářů z T-SQL

Pokud potřebujeme vypsat v T-SQL seznam adresářů, případně souborů na disku, máme tyto základní možnosti: extended proceduru xp_dirtree, DOS příkazy pomocí xp_cmdshell, CLR nebo OLE (OAAutomation objekty). Dnes se povídáme na možnosti, které nám poskytuje xp_dirtree a xp_cmdshell.
T-SQL

Spouštění skriptů ze souboru

Spouštět sql skripty uložené například v adresáři na disku je poměrně častý úkol a my si ukážeme dva jednoduché způsoby jak na to: pomocí OPENROWSET() funkce a pomocí SQLCMD Mode nastavení Sql Server Management Studia.

Read more
T-SQL

LIKE: ESCAPE a COLLATE

Jak používat klauzuli LIKE ví asi každý. Ale u mladších kolegů se často setkávám s tím, že si neumí poradit s jejím využitím v prostředí s různými kolacemi a nebo nevědí, jak dosáhnout správného výsledku v případě, že hledají řetězec, který obsahuje některý se speciálních znaků, např. %. COLLATE Řešení…
T-SQL

Převod seznamu hodnot s oddělovačem do tabulky pomocí XML

Klasický problém, který řešíme téměř každý den je, jak si převést seznam hodnot oddělených čárkou nebo jiným znakem z textového řetězce do tabulkového formátu, abychom s daty mohli dále pracovat. Jednou z možností je využití schopností T-SQL jazyka pro práci s XML daty. Náš testovací řetězec si jednoduše pomocí REPLACE()…
T-SQL

Výpis chyb z CATCH bloku

Při psaní složitějších rutin v T-SQL a zejména při zanořování uložených procedur a dalších pokročilých scénářích je určitě na místě předejít nekontrolovaným chybám využitím konstrukce TRY & CATCH. Pokud nějaká chyba přeci jen nastane a zachytíme ji v CATCH bloku, potřebujeme vědět, o jakou chybu se jedná. Pokud nepošleme chybu…

Read more
T-SQL

OUTPUT

OUTPUT klauzule přišla do SQL Serveru již v edici 2008, ale stále je to výrazně nedoceněná funkcionalita a spousta vývojářů raději nejprve vloží data do tabulky a pak se teprve pomocí WHERE snaží přesvědčit, že se vše povedlo. Proto jsem pro Vás připravil krátký přehled všech vychytávek, které s OUTPUT…
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, že to leckomu z juniorů ušetří pár bezesných nocí:) Kouzlo…
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 IDENTITY_INSERT SampleTable ON GO INSERT SampleTable (RowID, Name, Value) VALUES…

Read more