2017-07-31 198 views
1

我已经知道如何发送使用SQL Server的邮件的邮件,我该做的就是创建一个表,然后我使用这样的表身:发送邮件带有参数的存储过程

set @Body = 
(ColName as [TD], 
Col2Name as [TD] from tableName for xml raw ('tr'), elements) 

这工作正常,但现在我不想选择任何形成的任何表,我想要做这样的事情(填写表身与存储过程的参数数据):

set @Body = 
(@Parameter1 as [TD], 
@Parameter2 as [TD] for xml raw ('tr'), elements) 

但它不工作,这是做到这一点的正确方法?

PD。与上面的代码,我得到以下SQL Server错误消息:

附近有语法错误为'

+1

不知道你在找什么......但听起来你应该看看'@ query'或者其中一个'@ attach_query_result_as_file'类型的参数到sp_send_dbmail – scsimon

+0

@scsimon我有一切可以发送电子邮件和工作正常,但表体正在填充从表中选择数据,现在我想要填充表体,但使用参数 – User1899289003

+0

所以你想要@body成为来自使用参数的查询的查询结果? – scsimon

回答

1

只要改变

set @Body = 
(@Parameter1 as [TD], 
@Parameter2 as [TD] for xml raw ('tr'), elements) 

要:

set @Body = 
(Select @Parameter1 as [TD], 
@Parameter2 as [TD] for xml raw ('tr'), elements) 

记住你正在选择一些东西,所以你需要使用选择。

+1

谢谢!这解决了我的问题! – User1899289003