[SQL SERVER][Memo]SendMail Using CLR SP
看到網友發問使用sp_send_dbmail能否將主旨編碼轉Big5,
由於SQL Server DataBase Mail寄出的郵件都使用UTF-8編碼,
所以無法去修改SQL Server DataBase Mail的郵件編碼,
但從SQL2005開始,SQL Server和CLR(Common Language Runtime )整合,
讓我們可以使用任何 .NET Framework 語言 ,
撰寫預存程序、觸發程序、使用者定義型別、使用者定義函數、使用者定義彙總及資料流資料表值函數。
所以我們就可以自行撰寫CLR SP來處理編碼上的問題,這裡記錄一下。
零、讓SQL SERVER支援CLR
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
一、撰寫CLR Code
開啟VS並新增SQL SERVER專案。
選擇資料庫。
選擇預存程序類型。
利用.NET發送郵件應該不難,所以就直接貼圖了...XD。
二、Deploy(Compile CLR Code已完成)
成功後在去資料庫確認是否部署成功。
資料庫果然存在了剛剛的CLR SP。
三、Call CLR SP
EXEC dbo.SendMail @recipients = 'rico0203@msn.com', @subject = '測試(Using CLR SP)_藀攍犎',
@from='aa@bb.com.tw', @body='測試信件From SQL2008'
果然收到從SQL SERVER寄來的信件了。
而且也是Big5編碼。