2012-01-18 23 views
2

私はSQLデータベースを使って.NETアプリケーションを開発しました。 SQLでは、Dateカラムを含むテーブルTable_domがあります。ここには日付が格納されます。もう1つのテーブルはです。私は1つのemailカラムを持っています。ASP.NETで自動的にメールをトリガー

現在の日付が5日後の場合、Table_TLテーブルemailカラムからリマインダーメールをTLに送信する必要があります。あなたはこれを助けてくれますか?

ありがとうございます。

+0

はどのように接続された二つのテーブルがありますか? –

+0

私は2つのテーブルに共通するタワーフィールドを持っています – Domnic

答えて

1

SQL Server 2005以降を使用している場合は、Database Mail featureを使用してデータベースから直接電子メールを送信できます。リマインダーを送信する定期的なチェックは、SQL Server Agent jobを使用して設定できます。

編集:あなたは、データベースメールを正しく使用すると、SQLジョブに(未テスト)このような何かを追加することができるはずセットアップを持って提供

DECLARE @recipient AS varchar(255) 
DECLARE users CURSOR FAST_FORWARD READ_ONLY FOR 
    SELECT tl.email 
    FROM Table_TL tl 
    INNER JOIN Table_dom dom ON tl.thekey = dom.thekey 
    WHERE DATEDIFF(day, dom.date, GETDATE()) > 5 

OPEN users 
FETCH NEXT FROM users INTO @recipient 
WHILE @@FETCH_STATUS = 0 
BEGIN 
    EXEC msdb.dbo.sp_send_dbmail 
     @profile_name = 'The profile you set up for the mail feature' 
     , @recipients = @recipient 
     , @subject = 'The subject' 
     , @body = 'The message' 

    FETCH NEXT FROM users INTO @recipient 
END 
CLOSE users 
DEALLOCATE users 
+0

テーブルからメールを取り出すようにメールをトリガーするサンプルクエリが必要です – Domnic

+0

サンプルが追加されました – PHeiberg

関連する問題