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, že je emailový klient bude přímo zobrazovat v uživatelsky přívětivém formátu, v tomto případě v tabulce.
V následujícím skriptu si vše ukážeme na ukázkových datech, kterými bude seznam prvních 10ti tabulek z databáze msdb. Data si jednoduše vložíme do kurzoru a při každé jeho iteraci bude postupně přidávat jednotlivé tagy k proměnné @HTML:
USE msdb GO DECLARE @name NVARCHAR(128) DECLARE @HTML NVARCHAR(MAX) DECLARE @tr NVARCHAR(20) DECLARE @_tr NVARCHAR(20) DECLARE @td NVARCHAR(20) DECLARE @_td NVARCHAR(20) SET @tr = ' <tr>'; SET @td = ' <td>' SET @_td = '</td>' SET @_tr = ' </tr>'; SET @HTML = '<table border = 1>' + CHAR(13) DECLARE cur CURSOR FAST_FORWARD FOR SELECT TOP 10 name FROM sys.tables ORDER BY name OPEN cur FETCH NEXT FROM cur INTO @name WHILE @@FETCH_STATUS = 0 BEGIN SET @HTML = @HTML + @tr + CHAR(13) + @td + ISNULL(@name, 'NULL') + @_td + CHAR(13) + @_tr + CHAR(13) FETCH NEXT FROM cur INTO @name END CLOSE cur DEALLOCATE cur SET @HTML = SUBSTRING(@HTML, 0, LEN(@HTML) - 1) + '>' + CHAR(13) + '</table>' PRINT @HTML GO
Výstup v Management Studiu vypadá takto:
Pokud si data zkopírujeme a uložíme je do souboru v příponou *.html, v prohlížeči uvidíme tuto jednoduchou tabulku (a stejně tak v emailovém klientu, který podporuje zobrazení HTML):