用DataBaseMail寄件時使用Global Temporary Table

有時候我們會需要建立一個資料庫排程來檢查資料庫中的某些資料是否存在,當有問題時,可以利用DataBaseMail的方式來寄送警告信件。

不過,在寄件時有時又需要將查詢到的資訊附件信件中。雖然在用DataBaseMail寄信時可以指定要使用一段SQL指令查詢資料並作為信件內容。但在這段查詢指令中,並無法使用暫存表。正確來說是無法使用Local Temporary Table。

例如以下的方式是在將查詢的結果儲存到Local Temporary Table (#tmp)中,並試著在寄送mail時將這個暫存表的內容附加到mail中。結果就出現錯誤訊息:無效的物件名稱#tmp。這是因為在寄送mail時,它執行的是另一段session,在其它的session中是無法看到目前session中的暫存表的。


為了要在寄送mail時可使用到原本session中的查詢結果,我們改用Global Temporary Table(##tmp),這樣就可以正常寄送mail了。

留言

這個網誌中的熱門文章

DOS Batch指令檔中如何記錄log資訊

用捷徑方式執行需帶入命令列參數的Windows Form程式

使用regular expression來match中括號(square bracket)