SQL Server poskytuje snadný způsob, jak poslat výsledky dotazu e-mailem sobě (nebo někomu jinému).
Chcete-li odesílat e-maily pomocí T-SQL, musíte použít sp_send_dbmail
uložená procedura v msdb databáze. Tento postup přijímá mnoho argumentů, z nichž jeden je @query
argument. To je argument, který připojuje výsledky vašeho dotazu k e-mailu.
Příklad
Zde je základní příklad, který používá minimum 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',
@subject = 'Query results as discussed';
Ve výchozím nastavení jsou výsledky dotazu uvedeny v těle e-mailu. Alternativně si můžete výsledky nechat poslat jako přílohu.
Odebrat odsazení
Pokud jsou vaše výsledky formátovány s příliš velkým odsazením ve sloupcích, můžete použít @query_result_no_padding = 1
k odstranění této výplně.
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',
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Přidat výsledky dotazu jako přílohu
Můžete použít @attach_query_result_as_file
argument pro přidání výsledků dotazu jako přílohy. 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,
@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';
V tomto příkladu jsem přidal několik dalších argumentů.
@query_attachment_filename
argument umožňuje zadat vlastní název souboru (pokud tento argument neuvedete, Database Mail jej vytvoří).
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 T-SQL pro povolení a konfiguraci Database Mail. Netrvá to dlouho.