In SQL Server können Sie E-Mails mit sp_send_dbmail
senden gespeicherte Prozedur in der msdb Datenbank.
Eine der Wahlmöglichkeiten, die Sie beim Ausführen dieses Verfahrens haben, ist, ob die Ergebnisse einer Abfrage eingeschlossen werden sollen oder nicht.
Sie haben auch die Wahl, ob Sie diese Ergebnisse als Anhang senden möchten oder nicht.
Beispiel
Um die Ergebnisse einer Abfrage per E-Mail zu versenden, verwenden Sie @query
Argument.
Um diese Ergebnisse als Anhang anzuhängen, verwenden Sie @attach_query_result_as_file
Streit. Dies wird bisschen akzeptiert Wert, wobei der Standardwert 0
ist (für keinen Anhang).
Um die Ergebnisse als Anhang zu versenden, geben Sie einfach eine 1
ein für dieses 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';
Dieses Beispiel sendet eine E-Mail mit den Ergebnissen im Anhang als .txt Datei. Der Name wurde automatisch von Database Mail generiert.
Standardmäßig beträgt die maximale Dateigröße für Anhänge 1 MB pro Datei, aber Sie können dies mit sysmail_configure_sp
ändern gespeicherte Prozedur.
Geben Sie einen Namen für den Anhang an
Sie haben auch die Möglichkeit, einen eigenen Namen für den Anhang anzugeben. Sie können dies mit dem @query_attachment_filename
tun Streit.
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';
Weitere Optionen
Hier ist ein weiteres Beispiel, das das vorherige erweitert. Hier habe ich eine Reihe von Optionen eingefügt, die Sie beim Senden von Abfrageergebnissen als E-Mail-Anhang nützlich finden könnten.
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';
Einige davon sind auf ihren Standardwert eingestellt und andere nicht. Zum Beispiel habe ich @query_result_no_padding
geändert zu 1
um Polsterung aus den Spalten zu entfernen. Ich habe auch @query_result_separator
verwendet um das Trennzeichen vom Standard-Leerzeichen in ein Komma zu ändern.
Die sp_send_dbmail
Die Prozedur akzeptiert mehr Argumente, als ich hier aufgelistet habe. Eine vollständige Liste der Argumente und ihrer Beschreibungen finden Sie in der Dokumentation von Microsoft.
Datenbank-E-Mail konfigurieren
Bei den Beispielen auf dieser Seite wird davon ausgegangen, dass Sie Datenbank-E-Mail bereits aktiviert und konfiguriert haben.
Wenn Sie Datenbank-E-Mail nicht konfiguriert haben, finden Sie weitere Informationen unter So senden Sie E-Mails von SQL Server. Dieser Artikel enthält Beispiele zum Aktivieren und Konfigurieren von Datenbank-E-Mail mit T-SQL.