我创建了一个存储过程,以便接收" select"的结果。作为HTML表通过电子邮件和创建工作。 Job只有一步执行我的SP。
当"选择"如果没有结果,我会收到空白电子邮件,但是当"选择"时,我不想收到任何电子邮件。没有结果。
我该怎么做;在select,SP,job?
谢谢。
CREATE PROCEDURE [dbo].[spTEST]
AS
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)
BEGIN SET NOCOUNT ON;
SET @xml = CAST((SELECT
A as 'td','',
B as 'td','',
C as 'td','',
D as 'td','',
E as 'td'
FROM
......
WHERE
.......
FOR XML PATH('tr'), ELEMENTS) AS NVARCHAR(MAX))
SET @body ='<html><body><H3>Test</H3>
<table border = 1>
<tr>
<th> A </th> <th> B </th> <th> C <th> D </th> <th> E </th>
</tr>'
SET @body = @body + @xml +'</table></body></html>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'TestProfile',
@body = @body,
@body_format ='HTML',
@importance = 'High',
@recipients = '......',
@subject = '......'
END
答案 0 :(得分:0)
如果没有行,@xml
变量将为NULL,根据此NULL值,您可以返回而不发送邮件。
DECLARE @xml NVARCHAR(MAX) =NULL
SET @xml = CAST((
....
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
IF ( @xml is NULL ) return