sql >> Database >  >> RDS >> Sqlserver

De resultaten van een query e-mailen in SQL Server (T-SQL)

SQL Server biedt een gemakkelijke manier om de resultaten van een query naar uzelf (of naar iemand anders) te e-mailen.

Om e-mail met T-SQL te verzenden, moet u de sp_send_dbmail gebruiken opgeslagen procedure in de msdb databank. Deze procedure accepteert veel argumenten, waaronder de @query argument. Dat is het argument dat de resultaten van uw zoekopdracht aan de e-mail koppelt.

Voorbeeld

Hier is een eenvoudig voorbeeld dat een minimum aan argumenten gebruikt:

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';

Standaard worden de resultaten van de zoekopdracht weergegeven in de hoofdtekst van de e-mail. U kunt de resultaten ook als bijlage laten verzenden.

Opvulling verwijderen

Als uw resultaten zijn opgemaakt met te veel opvulling in de kolommen, kunt u @query_result_no_padding = 1 gebruiken om deze opvulling te elimineren.

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';

Queryresultaten als bijlage toevoegen

U kunt de @attach_query_result_as_file . gebruiken argument om de queryresultaten als bijlage toe te voegen. Dit accepteert een beetje waarde, met als standaard 0 (voor geen bijlage).

Om de resultaten in een bijlage te verzenden, geeft u eenvoudig een 1 . op voor dit 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';

In dit voorbeeld heb ik wat meer argumenten toegevoegd.

De @query_attachment_filename argument stelt u in staat om uw eigen bestandsnaam op te geven (als u dit argument niet opgeeft, zal Database Mail er een verzinnen).

De sp_send_dbmail procedure accepteert meer argumenten dan ik hier heb vermeld. Zie de documentatie van Microsoft voor een volledige lijst met argumenten en hun beschrijvingen.

Database-e-mail configureren

De voorbeelden op deze pagina gaan ervan uit dat u Database Mail al hebt ingeschakeld en geconfigureerd.

Zie E-mail verzenden vanuit SQL Server als u Database Mail niet hebt geconfigureerd. Dat artikel biedt T-SQL-voorbeelden voor het inschakelen en configureren van Database Mail. Het duurt niet lang.


  1. MySQL Galera-clusterreplicatie gebruiken om een ​​geo-gedistribueerde cluster te maken:deel twee

  2. Kennismaken met de mogelijkheden en functies in MariaDB SkySQL

  3. Hoe PHP MySQL-databaseverbinding te testen met behulp van script

  4. PostgreSQL:rol is niet toegestaan ​​om in te loggen