201701101503[MSSQL] Database Mail T-SQL 送信程式與處理中文亂碼 ?? 問號

 使用 MS-SQL 的 Database Mail 以 T-SQL 方式送信,英文內容都OK但中文都變成 ???? 問號亂碼,怎麼解決呢?

前提是你必須先設定好「Database Mail:參考 http://blog.xuite.net/tolarku/blog/479701748
T-SQL 寄信程式片段 - 以 HTML 格式送信,並將 query 的結果以附件夾檔 TXT 傳送

DECLARE @body_html nvarchar(4000) =
             N'<H3>
您好, 請查收</H3>' +
             N'
查詢資料表內容如下<BR><BR>' +
             N'<TABLE BORDER="1" width="50%">' +
             CAST ( ( SELECT * FROM [test].[dbo].[Account]
              FOR XML PATH('tr'), TYPE  
               ) AS NVARCHAR(MAX) ) +
             N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail 
   
@profile_name = 'dbmailer', 
    @recipients = 'green@itri.org.tw', 
    @query = 'SELECT *  FROM [test].[dbo].[Account]' , 
    @subject = N'
資料表  Account 的內容如附件', 
    @body = @body_html,
    @attach_query_result_as_file = 1,
    @body_format = 'HTML' ;  

註:profile_name 請搭配你 database mail 所設定的名稱

 

亂碼問題簡單的說,就是 Database mail 如果有中文內容時,必須在前面多加個「N」,如 N'......'  才能正常的顯示中文,不會出現問號 ?? 亂碼

參考:https://msdn.microsoft.com/zh-tw/library/ms190307.aspx

~END

 

回應
Google Search
Google
累積 | 今日
loading......
平均分數:0 顆星
投票人數:0
我要評分:
Google