sql >> Databáze >  >> RDS >> Sqlserver

Jak poslat e-mailem výsledky dotazu na SQL Server (T-SQL)

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.


  1. MySQL utf8mb4, Chyby při ukládání emotikonů

  2. Jak propojit Android s MySQL pomocí ovladače Mysql JDBC

  3. Odebrat identitu ze sloupce v tabulce

  4. cx_Oracle se nepřipojí při použití SID místo názvu služby v připojovacím řetězci