我正在尝试构建一封电子邮件,但遇到了问题。当存储过程运行时,我会收到以下错误消息。
“Msg 14624,Level 16,State 1,Procedure sp_send_dbmail,Line 242 必须指定以下参数之一:“@body,@query,@file_attachments,@subject”。”
我的代码如下,但我已经添加了每个请求的项目。我已经缩小了出现问题的范围。如果我删除连接符“+”,则一切都按预期工作。但我以前使用过连接符号,所以我不确定有什么不同。
“Msg 14624,Level 16,State 1,Procedure sp_send_dbmail,Line 242 必须指定以下参数之一:“@body,@query,@file_attachments,@subject”。”
我的代码如下,但我已经添加了每个请求的项目。我已经缩小了出现问题的范围。如果我删除连接符“+”,则一切都按预期工作。但我以前使用过连接符号,所以我不确定有什么不同。
DECLARE @RespPeriod varchar(20)
DECLARE @SubjectLine varchar(100)
DECLARE @ContactEmail varChar(100)
DECLARE @AAEAPVSupplierID int
DECLARE @key varchar(50)
DECLARE @formattedURL varchar(100)
DECLARE @emailBody varchar(max)
DECLARE Curs Cursor
FOR
SELECT theID FROM #temptbl
OPEN Curs
FETCH NEXT FROM Curs INTO @theID
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT *
INTO #temptbl
FROM tblmainTbl
WHERE theID = @theID
DECLARE @isComplete Bit = 1
IF EXISTS (SELECT * FROM #temptbl WHERE Complete = 0)
BEGIN
SET @isComplete = 0
END
IF @isComplete = 1
BEGIN
SET @SubjectLine = 'Testing ' + @RespPeriod + ' Testing.'
SET @ContactEmail = (SELECT SalesEmail FROM #temptbl WHERE theID = @theID)
SET @key = (SELECT ResponseKEY FROM #temptbl WHERE theID = @theID)
SET @formattedURL = 'http://www.something.com/something.aspx?rkey=' + @key
SET @emailBody = '<html>Dear BlaBlaBla' + @RespPeriod + ' ' + @formattedURL + '">' + @formattedURL + '</a></html>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SMTPProfile'
,@recipients = @ContactEmail
,@subject = @SubjectLine
,@body = @emailBody
,@body_format = 'HTML'
END
DROP TABLE #temptbl
FETCH NEXT FROM Curs INTO @theID
END
CLOSE Curs
DEALLOCATE Curs