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…

Read more
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.
SQL Server

sp_get_query_template

Systémová procedura sp_get_query_template je nenápadný, ale velmi užitečný pomocník. Primárně je sice určena pro vytváření šablon dotazu pro plan guidy, ale stejně tak dobře ji můžeme využít pro scénář, kdy máme rozsáhlé query s řadou parametrů a z nějakého důvodu potřebujeme dotaz volat z dynamického sql, např. pro různé databáze…
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
SQL Server

Nedokumentované uložené procedury

Každá edice SQL Serveru zahrnuje množství uložených a extended procedur, které nejsou zmíněny v oficiální dokumentaci, což znamená především to, že jsou určeny pouze pro interní potřebu Microsoftu a mohou být kdykoliv změněny nebo odstraněny. Přesto je spousta z nich nebývale užitečná a používána široce i komunitou. Dnes se podíváme…
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í…
SQL Server

Generování dat do HTML pomocí T-SQL

V praxi se čas od času objeví požadavek, vygenerovat pomocí T-SQL jazyka výstupní data přímo ve formátu HTML, např. pro export do webové aplikace. Náramně užitečné to může být i v případě, pokud si necháváme přímo z SQL Serveru posílat různé emailové notifikace a rádi bychom je doplnili daty tak,…

Read more
SQL Server

Připojení Resource databáze

Resource databáze je systémová databáze SQL Serveru, která normálně není uživateli přístupná a není ani viditelná ve stromu databází v Management Studiu. Přesto se objekty v ní obsažené zobrazují v každé uživatelské databázi v rámci sys.* a dalších schémat. V běžné praxi nenarazíte na nutnost se jí jakkoliv zabývat (kromě…
SQL Server

Vytvoření view s daty z uložené procedury

Můžeme vytvořit view, ve kterém přímo zavoláme uloženou proceduru a vrátíme z ní data jako sloupce view? Ano, je to možné s pomocí funkce OPENROWSET, jak ukazuje příklad níže. Nicméně, opravdu věřím, že se s podobnou programátorskou kreativitou nesetkám v produkčním kódu:)
SQL Server

Jazykové nastavení připojení

Pro každé připojení (session) můžeme nastavit jejích výchozí jazyk a toto nastavení následně určuje některé charakteristiky daného připojení, např. v jakém jazyce se budou zobrazovat systémové zprávy nebo různé formáty data, dny v týdnu a podobně. Než se pustíme do změny jazyka připojení, podívejme se,  jak můžeme zjistit aktuální nastavení:…

Read more