[SQL SERVER][Memo]SendMail Using CLR SP

[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

image

開啟VS並新增SQL SERVER專案。

 

image

選擇資料庫。

 

image

選擇預存程序類型。

 

image

利用.NET發送郵件應該不難,所以就直接貼圖了...XD。

 

二、Deploy(Compile CLR Code已完成)

image

成功後在去資料庫確認是否部署成功。

 

image

資料庫果然存在了剛剛的CLR SP。

 

三、Call CLR SP

EXEC dbo.SendMail @recipients = 'rico0203@msn.com', @subject = '測試(Using CLR SP)_藀攍犎',
@from='aa@bb.com.tw', @body='測試信件From SQL2008'

image 

image

image

果然收到從SQL SERVER寄來的信件了。

 

image

而且也是Big5編碼。