|
本帖最后由 Herogao 于 2014-7-15 21:54 编辑
exec msdb..sp_send_dbmail
@profile_name = 'sqlmail1', --就是在步骤2中的配置文件名。
--调用发送邮件的存储过程,登录帐号必须有msdb的datamail权限
@recipients = '@abccom.cn',--用来接受邮件的地址
@subject = 'test',
@append_query_error = 1,
--@attach_query_result_as_file = 1,
--@query_attachment_filename = 'a.txt',
@body = '@tableHTML',
@body_format = 'html',
@query = '
DECLARE @tableHTML NVARCHAR(MAX) ;
set @tableHTML=
N'<H1>Work Report</H1>' +
N'<table border="1">' +
N'<tr><th>MTL CATGRY</th><th>MTL EN</th>' +
cast((select td=cast(a.MTL_CATGRY as varchar),td=cast(a.MTL_DESC_EN as varchar)
from FSDBMR.dbo.v_MtlCat a for xml path('tr'),type)as nvarchar(MAX))+
N'</table>';
select @tableHTML
'
上面的脚本,运行后,报一下错误。
Msg 102, Level 15, State 1, Line 14
Incorrect syntax near '<'.
我单独运行:
DECLARE @tableHTML NVARCHAR(MAX) ;
set @tableHTML=
N'<H1>Work Order Report</H1>' +
N'<table border="1">' +
N'<tr><th>MTL CATGRY</th><th>MTL DESC EN</th>' +
cast((select td=cast(a.MTL_CATGRY as varchar),td=cast(a.MTL_DESC_EN as varchar)
from FSDBMR.dbo.v_MtlCat a for xml path('tr'),type)as nvarchar(MAX))+
N'</table>';
select @tableHTML
sql没有报错提示,结果显示为:
<H1>Work Order Report</H1><table border="1"><tr><th>MTL CATGRY</th><th>MTL DESC EN</th><tr><td>MRPMaterial_Raw_Purchasing</td></tr><tr><td>MRIMaterial_Raw_Importing</td></tr><tr><td>MRSMaterial_Raw_Subcontracting</td></tr><tr><td>MRCMaterial_Raw_Custom_Provide</td></tr><tr><td>MWPMaterial_Work_In_Process</td></tr><tr><td>MPTMaterial_Product</td></tr><tr><td>MASMaterial_Accessory</td></tr><tr><td>ACTAsset_Tool_Cutting</td></tr><tr><td>AHTAsset_Tool</td></tr><tr><td>AFJAsset_Fixture & Jig</td></tr><tr><td>AMCAsset_Machine</td></tr><tr><td>AMAAsset_Machine_Accessory</td></tr><tr><td>AMEAsset_Measurement_Equipment</td></tr><tr><td>AOEAsset_Office_Equipment</td></tr><tr><td>AIEAsset_IT_Equipment</td></tr><tr><td>AVHAsset_Vehicle</td></tr><tr><td>AFOAsset_Facility_Others</td></tr><tr><td>RFCResource_Facility</td></tr><tr><td>RLBResource_Labor</td></tr></table>
请帮忙指点一下,哪儿出现问题了?谢谢! |
|