Author Archives: Honza Zedníček

SQL CONCAT_WS – spojení textových řetězců se separátorem

Jednou z novinek ve verzi SQL Server 2017 je nasazení nové funkce CONCAT_WS. Funkce dělá to samé jako CONCAT (viz velký článek o string funkcích), ale narozdíl od ní umožňuje zadat v prvním argumentu separátor – znak, kterým jsou jednotlivé stringy odděleny. Typickým využitím funkce může být generování csv souborů. Syntaxe CONCAT_WS CONCAT_WS ( separátor, argument1,… Čtěte více »

SQL TRIM, LTRIM, RTRIM funkce – očištění mezer z textu

Když se pár chytrých hlav z Microsoftu dá dohromady, může z toho vzniknout nějaké to vylepšení :). Jedním z těchto vylepšení, které přišlo s edici SQL Server 2017 je funkce TRIM. Tato funkce umožňuje na obou stranách nějakého textu (stringu) odstranit mezery. Edice před SQL Server 2017 obsahovaly pouze funkce LTRIM A RTRIM Dlouhodou dobu… Čtěte více »

SQL Server edice a verze – Jak jednoduše zjistit verzi a edici SQL Server

Způsobů jak zjistit verzi, na které běží SQL Server instance vč. edice je více. Jedním ze způsobů je zobrazit si vlastnosti (properities) nad SQL Server instancí. Tam uvidíme identifikátor verze. Jak z čísla poznat verzi SQL Serveru? Moje verze SQL serveru viz screenshot je 14.0.2002.14. Důležité je první předčíslí, které udává verzi, která je v… Čtěte více »

SQL STRING_AGG – spojení řádků do jedné hodnoty (concat string)

Nedávno jsem řešil úlohu, když jsem potřeboval v tabulce spojit řádky v nějaké tabulce do 1 string hodnoty. To nebylo u SQL Server ještě nedávno úplně jednoduché, protože narozdíl od třeba mysql neobsahoval speciální funkci k tomu určenou (muselo se na to jít přes příkaz FOR XML PATH). V SQL Server 2017 byla ale nasazena… Čtěte více »

SQL XML – Základy XML – Struktura, tagy, elementy a atributy (Díl 2.)

Pokračujeme v sérii článků věnované práci se XML v prostředí SQL Server. V tomto článku shrnu základy XML (Extensible Markup Language) jako předpoklad pro pokračování v dalších dílech. XML je velmi jednoduché na pochopení takže se není čeho bát. Zde se tedy dozvíte: co je to XML a k čemu slouží jak vypadá XML dokument a… Čtěte více »

Návštěvnost webu Biportal.cz 5/2017 – 9/2018

Občas se jako správný webmaster podívám na Google Analytics abych zjistil, jak se webu daří (naposledy jsem dělal shrnutí v březnu – Návštěvnost webu Biportal.cz výrazně roste. Ne že by mě to extra zajímalo, ale přecijen je dobré vědět jestli články někdo čte a jestli do toho nemám hodit vidle a věnovat se něčemu jinému.… Čtěte více »

SQL XML – Úvod do XML pro SQL Server (Díl 1.)

Tímto článkem začínám 10-ti dílnou sérii článků zaměřenou na XML pro SQL Server (Extensible Markup Language) a práci s tímto jazykem v této db platformě. Pokusím se zde krátce shrnout velmi co SQL Server s XML umí provádět s tím, že podrobněji se jednotlivým funkcím budu věnovat v dalších článcích, pro kterou jsem založil zvláštní… Čtěte více »

SQL Jak poslat email přes SQL Script (sp_send_dbmail) – Database mail (Díl 5.)

Tento díl o mailování ze SQL Serveru bude asi poslední, už mi docházejí nápady 🙂 Poslat email SQL scriptem můžete přes systémovou proceduru “sp_send_dbmail”. Před tím je ale potřeba něco ponastavovat. Jak poslat email přes SQL Script – procedura sp_send_dbmail (1) Především musíte mít nastaven database mail – nastavit email profil můžete podle článku z prvního… Čtěte více »

SQL Alerts a notifikace nad SQL Serverem -Database mail (Díl 4.)

Jako správci SQL Serveru bychom měli vědět, co se na serveru během dne děje a jestli tam nedochází k nějakým nežádoucím incidentům. K tomu se dají využít Alerts (upozornění). Pokud se vyskytne nějaká událost, kterou hlídá definovaný alert, tak dojde k odeslání notifikace přes email operátorovi, který může stav napravit nebo ho vezme na vědomí.… Čtěte více »

SQL Emaily v Reporting services přes Subscription – Database mail (Díl 3.)

Reporting services jsou featura, kterou můžete využívat již od Express edice a je to sada služeb pomocí které můžete vytvářet a publikovat reporty. O Reporting services jsem napsal seriál článků (první díl zde). Uživatelé reportů si je můžou prohlížet na URL v interní síti (Report manager neboli Web portál), kterou si definujete při instalaci –… Čtěte více »

SQL Vytvoření emailové notifikace – Database mail (Díl 2.)

Minulé 2 články které předcházely jsem věnoval nastavení database mailu a nastavení change trackingu (CDC) neboli automatického sledování změn nad tabulkou. Tak mě napadá proč tyto témata nespojit – popíšu, jak pomocí automatického emailu odreportovat změny nad určitou tabulkou. to se může hodit ne? 🙂 Připomínám, že tato funkce je dostupná v edici Standard a vyšší.… Čtěte více »

SQL Nastavení emailování z gmailu – Database mail (Díl 1.)

Funkce database mail je dostupná pouze v edici SQL Server Standard a vyšší. V edici SQL Server Express se s ním bohužel nesetkáme. Tato funkce je užitečná především pokud chcete posílat různé zprávy ze SQL Serveru na Váš email. Typicky jde o různé kontroly a notifikace a upozornění. V neposlední řadě je tato funkce využitelná při… Čtěte více »

SQL Change data capture (CDC) – Tracking změn nad tabulkou

V aplikacích nebo komplikovaných podnikových informačních architekturách často potřebujeme z různých důvodů řešit historizaci záznamů a trackování změn hodnot. Většinou to bývá zejména z bezpečnostních důvodů => potřebujeme sledovat kdo a co mění, případně být schopni opravit chybu třeba ze strany uživatele nebo db admina. Dalším dobrým důvodem pro nasazení CDC je třeba to, že… Čtěte více »

Jak vygenerovat skript pro všechny objekty (tabulky, views, procedury, funkce) v databázi?

Důvodů proč bychom mohli potřebovat vytvořit definici všech SQL objektů v určité databázi může být hromada – zálohování, source controll nebo nasazení databáze v jiném prostředí (na jiné SQL instanci). Je to celkem triviální, SQL Server má pro tyto účely integrován jednoduchý nástroj. Jak vygenerovat skripty pro tabulky, views, procedury, funkce v databázi? (1) Klikneme pravým… Čtěte více »

SQL Cursor – Ukázka jak funguje SQL kurzor

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). Mám teď volněji, tak se tu pokusím tady něco uvařit. Každopádně, kurzory jsou obecně velmi slow operace a používal bych je jako možnost poslední instance. Často jde úloha řešit bez kurzoru (rekurzivním dotazem,… Čtěte více »