如何在 SQL IF EXISTS 中设置两个变量

How to set two variables in SQL IF EXISTS

我需要在 IF EXISTS 语句中设置两个变量。首先是更改电子邮件的主题,另一个是更改收件人列表。请帮助.. Thanx

SET DATEFORMAT mdy;
GO
DECLARE @datevar date = getdate();
DECLARE @subjectCheck AS NVARCHAR(MAX);
DECLARE @email AS NVARCHAR(MAX);


IF EXISTS (SELECT CurrentDate from LOG_SHIP_CHECK WHERE CurrentDate = @datevar)
 SET @subjectCheck = 'Check LogShip: Success'
 SET @email = 'recipient1@server.com'
 ELSE
SET @subjectCheck = 'Check LogShip: Failure'; @email = 'recipient2@server.com'
DECLARE @tableHTML  NVARCHAR(MAX) ;

SET @tableHTML =
    N'<H1>Ezis Raadpleeg</H1>' + 
    N'<table border="1">' +
    N'<th>Datum</th></tr>' +
    CAST ( ( SELECT td = CurrentDate 
              FROM LOG_SHIP_CHECK 
             FOR XML PATH('tr'), TYPE 
    ) AS NVARCHAR(MAX) ) +
    N'</table>' ;

EXEC msdb.dbo.sp_send_dbmail @profile_name = 'ProfileName', @recipients=@email,
    @subject = @subjectCheck,
    @body = @tableHTML,
    @body_format = 'HTML' ;

IF 语句之后尝试 BEGINEND 语句,并使用 SELECT 而不是 SET。像这样,

IF EXISTS (SELECT CurrentDate from LOG_SHIP_CHECK WHERE CurrentDate = @datevar)
BEGIN
 SELECT @subjectCheck = 'Check LogShip: Success', @email = 'recipient1@server.com'
END
 ELSE
BEGIN
  SELECT @subjectCheck = 'Check LogShip: Failure', @email = 'recipient2@server.com'

END
IF EXISTS (SELECT CurrentDate from LOG_SHIP_CHECK WHERE CurrentDate = @datevar)
BEGIN
 SET @subjectCheck = 'Check LogShip: Success';
 SET @email = 'recipient1@server.com';
END
ELSE
BEGIN
 SET @subjectCheck = 'Check LogShip: Failure';
 SET @email = 'recipient2@server.com';
END