SQL Server bietet eine einfache Möglichkeit, die Ergebnisse einer Abfrage per E-Mail an sich selbst (oder an jemand anderen) zu senden.
Um E-Mails mit T-SQL zu senden, müssen Sie sp_send_dbmail
verwenden gespeicherte Prozedur in der msdb Datenbank. Diese Prozedur akzeptiert viele Argumente, von denen eines der @query
ist Streit. Das ist das Argument, das die Ergebnisse Ihrer Abfrage an die E-Mail anhängt.
Beispiel
Hier ist ein einfaches Beispiel, das ein Minimum an Argumenten verwendet:
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';
Standardmäßig werden die Ergebnisse der Abfrage im Text der E-Mail aufgeführt. Alternativ können Sie sich die Ergebnisse auch als Anhang zusenden lassen.
Polsterung entfernen
Wenn Ihre Ergebnisse mit zu viel Polsterung innerhalb der Spalten formatiert sind, können Sie @query_result_no_padding = 1
verwenden um diese Polsterung zu eliminieren.
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';
Abfrageergebnisse als Anhang hinzufügen
Sie können den @attach_query_result_as_file
verwenden -Argument, um die Abfrageergebnisse als Anhang hinzuzufügen. 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,
@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 diesem Beispiel habe ich einige weitere Argumente hinzugefügt.
Der @query_attachment_filename
Mit dem Argument können Sie Ihren eigenen Dateinamen angeben (wenn Sie dieses Argument nicht angeben, erstellt Database Mail einen).
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 T-SQL-Beispiele zum Aktivieren und Konfigurieren von Datenbank-E-Mail. Es dauert nicht lange.