Sql 如果没有可用的结果,请使用sp_Send_dbmail发送特定消息

Sql 如果没有可用的结果,请使用sp_Send_dbmail发送特定消息,sql,sql-server-2008,Sql,Sql Server 2008,我想有一个具体的消息发送,如果没有结果可用。现在如果我的工作执行了,而且没有什么可报告的,那么电子邮件就会显示为空白 SP低于 EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Mail_profile', @recipients = 'myemail@somename.com', @subject = 'Weekly', @query = N'EXEC PTW.dbo.SP_Weekly', @attach_query_result_as_file =

我想有一个具体的消息发送,如果没有结果可用。现在如果我的工作执行了,而且没有什么可报告的,那么电子邮件就会显示为空白

SP低于

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Mail_profile',
@recipients = 'myemail@somename.com',
@subject = 'Weekly',
@query = N'EXEC PTW.dbo.SP_Weekly',
@attach_query_result_as_file = 1,
@query_result_width = 150,
@query_result_header= 1,
@query_attachment_filename = 'Weekly.txt',
@importance = 'High',
@query_result_no_padding = 1,
@query_result_separator = ' ';
如果运行时没有可用的记录,我想显示
此时没有可用的记录

我试图在
@query
之前插入一个
ISNULL
,但这是我遇到的难题。有什么建议吗


还希望消息始终显示“Yesterdays date”未找到任何记录。


认为我必须添加
dateadd(day,datediff(day,0,getdate()),-1)
在那里的某个地方,但在哪里?

没有可用的记录…
你想让你的文本文件说这个还是邮件正文?邮件正文最好,这就是我缺少的…检查
@@rowcount
谢谢,上面的代码可能有效,也可能无效,但其思想与之类似,只是运行了它。干杯最后一个问题。。。如果我想让消息总是说,
No records found for'yesterdays date'
我认为更改主题会起作用,它只是一个变量。尝试一些类似于
No records found for'+cast(getdate()-1 as varchar(30))
declare @subject1  varchar(max)
declare @body1 varchar(max)
EXEC PTW.dbo.SP_Weekly
if @@rowcount=0
begin
set @subject1='No data or any message that suits you'
set @body1='some message'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Mail_profile',
@recipients = 'myemail@somename.com',
@subject = @subject1,
@importance = 'High',
@body=@body1,
@query_result_separator = ' ';
return
end

else
begin
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Mail_profile',
@recipients = 'myemail@somename.com',
@subject = 'Weekly,
@query = N'EXEC PTW.dbo.SP_Weekly',
@attach_query_result_as_file = 1,
@query_result_width = 150,
@query_result_header= 1,
@query_attachment_filename = 'Weekly.txt',
@importance = 'High',
@query_result_no_padding = 1,
@query_result_separator = ' ';
end