Na serveru SQL Server můžete odesílat e-maily pomocí sp_send_dbmail
uložená procedura v msdb databáze.
Jednou z možností, kterou máte při provádění tohoto postupu, je, zda zahrnout výsledky dotazu či nikoli.
Další možností je, zda tyto výsledky odeslat v příloze.
Příklad
Chcete-li výsledky dotazu odeslat e-mailem, použijte @query
argument.
Chcete-li tyto výsledky připojit jako přílohu, použijte @attach_query_result_as_file
argument. Toto je přijímá bit hodnota, přičemž výchozí hodnota je 0
(bez přílohy).
Chcete-li odeslat výsledky v příloze, jednoduše zadejte 1
pro tento argument.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@subject = 'Query results as discussed';
Tento příklad odešle e-mail s připojenými výsledky jako .txt soubor. Název byl automaticky vygenerován Database Mail.
Ve výchozím nastavení je maximální velikost souboru pro přílohy 1 MB na soubor, ale můžete to změnit pomocí sysmail_configure_sp
uložená procedura.
Zadejte název přílohy
Máte také možnost uvést své vlastní jméno pro přílohu. Můžete to udělat pomocí @query_attachment_filename
argument.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Artists.csv',
@subject = 'Query results as discussed';
Další možnosti
Zde je další příklad, který rozšiřuje předchozí. Zde jsem zahrnul řadu možností, které by se vám mohly hodit při odesílání výsledků dotazu jako přílohy e-mailu.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Artists.csv',
@query_result_header = 1,
@query_result_width = 256,
@query_result_separator = ',',
@exclude_query_output = 1,
@append_query_error = 1,
@query_no_truncate = 0,
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Některé z nich jsou nastaveny na výchozí hodnotu a některé ne. Například jsem změnil @query_result_no_padding
až 1
za účelem odstranění výplně ze sloupců. Také jsem použil @query_result_separator
změnit oddělovač z výchozí mezery na čárku.
sp_send_dbmail
procedura přijímá více argumentů, než jsem zde uvedl. Úplný seznam argumentů a jejich popis naleznete v dokumentaci společnosti Microsoft.
Konfigurace databázové pošty
Příklady na této stránce předpokládají, že jste již povolili a nakonfigurovali Database Mail.
Pokud nemáte nakonfigurovanou databázovou poštu, přečtěte si část Jak odesílat e-maily ze serveru SQL. Tento článek poskytuje příklady povolení a konfigurace Database Mail s T-SQL.