2009-08-24 4 views
2

mein Name ist Tayyeb, ich habe vor kurzem meinen Kurs in SQL Server 2005 abgeschlossen. Ich arbeite derzeit als Windows-Systemadministrator.Senden von E-Mails, wenn eine Tabelle aktualisiert wird

Ich bin ein Neuling für Datenbanken, meine Frage ist, dass wir eine Datenbank haben und wenn eine Tabelle aktualisiert wird, dann möchte ich eine E-Mail erhalten, die sagt, was aktualisiert wurde.

Kann mir jemand bei dieser Lösung helfen?

Vielen Dank im Voraus

Antwort

8

Sie würden insert and update triggers auf dem Tisch einrichten möchten und haben sie die eine Tabelle erstellen msdb.dbo.sp_send_dbmail stored procedure.

+1

Seien Sie vorsichtig, wie Sie Ihre Tabellen aktualisieren, da Sie eine große Anzahl von E-Mails generieren können. – pjp

+3

pjp ist richtig, dies löst alle Arten von schlechten Idee Alarme – stimms

+2

+1: Leser hier sollten beachten, die Bedeutung der Verwendung der "dbmail" Verfahren (neu in SQL Server 2005) und nicht die SQL-Mail-Verfahren. Neben vielen anderen Verbesserungen senden die DBMail-Prozeduren asynchron, sodass sie sicher von Triggern aus verwendet werden können. (Sie sollten * niemals * synchrone Kommunikation von Triggern verwenden, sehr schlechtes juju). – RBarryYoung

1

nennen, die in dieser speziellen Tabelle, die die Datetime für das letzte Update speichert.

Richten Sie einen Trigger für Ihre Tabelle ein, der die Datetime bei einem Update aktualisiert.

Lassen Sie eine externe Anwendung die Datetime in regelmäßigen Abständen abfragen, und wenn sie geändert wird, senden Sie eine E-Mail.

0

Die Verwendung eines Triggers ist gegeben. Entweder Lösung, DBMail oder ein Abrufvorgang wird funktionieren. Wenn Sie mit einem Abrufvorgang fortfahren, sollten Sie das Abfrageintervall so ändern, dass Sie es bei laufendem Abrufvorgang ändern können. Das Problem, mit dem Sie konfrontiert werden, besteht darin, dass Sie das gesamte Abfrageintervall nicht warten möchten, wenn Sie es testen oder debuggen möchten. Wenn das Intervall 5 Minuten beträgt, müssen Sie entweder den Poller neu starten oder ein separates Polling-Intervall haben, um zu überprüfen, ob sich das Polling-Intervall geändert hat (sagen wir rekursiv?). Schreiben Sie also den Poller mit Debugging/Testing.

Das könnte ausreichen, um Sie davon zu überzeugen, die DBMail-Lösung zu verwenden. Ich habe es nie benutzt, damit andere damit sprechen müssen.

Verwandte Themen