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