2012-08-28 45 views
0

問題觸發:如何忽略觸發時仍然有運行

我想,當插入一個表格寫一個觸發器,我必須做一個檢查和發送電子郵件到一個特定的用戶。爲此,我正在考慮使用觸發器,它會將一些值插入另一個QUEUE表。然後,QUEUE表中的觸發器將獲得最多x個電子郵件併發送並循環,直到完成所有記錄。所以一旦觸發器被調用,在觸發器工作時可以插入到QUEUE表。因此,觸發器將等待並且每次插入到QUEUE表中並且在當前運行觸發器完成之後。

問:

是我的做法是正確的。如果有更好的方法,有人可以幫助我。如果觸發器一遍又一遍地被觸發,是否是設計問題?有沒有辦法在有觸發器的情況下忽略觸發器。

+0

它可能還清學習[Sql Server Service Broker](http://msdn.microsoft.com/en-us/library/bb522893%28v=sql.105%29.aspx)。你的觸發器將使用本地隊列排隊郵件,並且預定的存儲過程將讀取消息併發送郵件。 –

回答

1

我可以建議在這裏,

1,創建於主表的觸發器爲whenver新的記錄被插入到主表,插入記錄到另一個表(隊列表)。

2.現在創建一個sproc,它將從隊列表中選擇前X行併發送電子郵件。

3.現在創建一個sql作業,它將定期執行上面創建的sproc。

4.在存儲過程中你可以像發送電子郵件一樣處理,你可以從QUEUE表中刪除這些記錄或者用它們做一些事情。

+0

好吧,我已經考慮過有關Sql客戶端的工作。但我認爲這個發送電子郵件存儲過程將被定期調用。但是如果可以按照我的意圖完成,存儲過程將在所有插入到表中的記錄完成後停止。 –

+0

是的,它會在有記錄時恢復。這是怎麼成爲儀式的? – AnandPhadke

+0

是的,你如何評論答案 –

相關問題