SQL 2008: E-Mail verschicken, wenn Datensätze vorhanden

10/03/2009 - 09:44 von Manuel Kobloch | Report spam
Hallo,

ich hàtte gerne gewusst, wie ich von SQL Server 2008 E-Mails
verschicken kann, wenn in einer bestimmten Tabelle Datensàtze drin
sind. Ich schildere das Problem mal genauer:

In der Tabelle "EMail_versand" gibt es die Spalten "Empf_email",
"Betreff", "Text", "Anhang"

Per Agent möchte ich alle 10 Minuten prüfen, ob ein neuer Datensatz in
dieser Tabelle existiert. Wenn ja, soll für jeden Datensatz eine E-
Mail geformt werden. Empfànger, Text und die anderen Daten der Mail
stehen im Datensatz selbst. Nach dem Versenden, soll der Datensatz
gelöscht werden.

Da ich mich mit SSIS nicht auskenne habe ich kurzerhand ein kleines
Tool geschrieben, welches vom Agent alle 10 Minuten aufgerufen wird,
das auf die Datenbank zugreift und die Mails per Winsock verschickt.

Es geht allerdings auch bestimmt bequem über TSQL bzw SSIS. Kann mir
da jemand weiterhelfen? Ich möchte möglichst auf Tools verzichten.

Danke für alle Antworten.

Manuel
 

Lesen sie die antworten

#1 Christoph Muthmann
10/03/2009 - 10:25 | Warnen spam
Manuel Kobloch wrote:
Hallo,

ich hàtte gerne gewusst, wie ich von SQL Server 2008 E-Mails
verschicken kann, wenn in einer bestimmten Tabelle Datensàtze drin
sind. Ich schildere das Problem mal genauer:

In der Tabelle "EMail_versand" gibt es die Spalten "Empf_email",
"Betreff", "Text", "Anhang"

Per Agent möchte ich alle 10 Minuten prüfen, ob ein neuer Datensatz in
dieser Tabelle existiert. Wenn ja, soll für jeden Datensatz eine E-
Mail geformt werden. Empfànger, Text und die anderen Daten der Mail
stehen im Datensatz selbst. Nach dem Versenden, soll der Datensatz
gelöscht werden.

Da ich mich mit SSIS nicht auskenne habe ich kurzerhand ein kleines
Tool geschrieben, welches vom Agent alle 10 Minuten aufgerufen wird,
das auf die Datenbank zugreift und die Mails per Winsock verschickt.

Es geht allerdings auch bestimmt bequem über TSQL bzw SSIS. Kann mir
da jemand weiterhelfen? Ich möchte möglichst auf Tools verzichten.




Hallo Manuel,
grundsàtzlich sollte etwas in dieser Art gehen:
If exists(select * from testtabelle )
begin
exec master..sp_send_dbmail ...
delete from testtabelle
end

Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen