SQL Server fornisce un modo semplice per inviare tramite posta elettronica i risultati di una query a se stessi (o a qualcun altro).
Per inviare e-mail con T-SQL, devi utilizzare sp_send_dbmail
stored procedure in msdb Banca dati. Questa procedura accetta molti argomenti, uno dei quali è @query
discussione. Questo è l'argomento che allega i risultati della tua query all'e-mail.
Esempio
Ecco un esempio di base che utilizza un minimo di argomenti:
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';
Per impostazione predefinita, i risultati della query sono elencati nel corpo dell'e-mail. In alternativa, puoi inviare i risultati come allegato.
Rimuovi imbottitura
Se i risultati sono formattati con troppo riempimento all'interno delle colonne, puoi utilizzare @query_result_no_padding = 1
per eliminare questa imbottitura.
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';
Aggiungi risultati della query come allegato
Puoi usare il @attach_query_result_as_file
argomento per aggiungere i risultati della query come allegato. Questo accetta un bit valore, con il valore predefinito 0
(per nessun allegato).
Per inviare i risultati in allegato, è sufficiente fornire un 1
per questo argomento.
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';
In questo esempio ho aggiunto altri argomenti.
Il @query_attachment_filename
argomento ti consente di specificare il tuo nome file (se non fornisci questo argomento, Database Mail ne creerà uno).
Il sp_send_dbmail
la procedura accetta più argomenti di quelli che ho elencato qui. Consulta la documentazione di Microsoft per un elenco completo degli argomenti e delle relative descrizioni.
Configurazione della posta database
Gli esempi in questa pagina presuppongono che tu abbia già abilitato e configurato Posta elettronica database.
Se la posta del database non è configurata, vedere Come inviare e-mail da SQL Server. Questo articolo fornisce esempi T-SQL per l'abilitazione e la configurazione di Posta elettronica database. Non ci vuole molto.