【发布时间】:2017-06-05 03:54:28
【问题描述】:
我正在尝试将无效代码发送到邮件。但是,当我执行存储过程的作业时,它完成得很好并且没有发送任何电子邮件。当我单独执行查询时,我得到了结果。我错过了任何配置设置吗?
CREATE PROCEDURE sp_Send_Email_Invalid_code
@MONTH AS int = 0
AS
BEGIN
DECLARE @Email_Subject AS nvarchar(250) = 'Codes Missing in master table';
DECLARE @Email_Receipients_To AS nvarchar(max) = 'xxx.yyy.com';
DECLARE @IsUseEmailConfig AS bit = 1;
DECLARE @Email_Category AS nvarchar(250);
SET @IsUseEmailConfig = 0
SET @Email_Category = 'Codes Missing in master table'
SELECT DISTINCT CODE
INTO #temp_1
FROM tblRegCode nolock
SELECT
*
FROM
#temp_1
DECLARE @Query nvarchar(max);
SET @Query = 'SELECT * FROM #temp_1';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'psmEmailer',
@recipients = 'xxx.yyy.com',
@query = @Query,
@subject = 'Missing codes',
@attach_query_result_as_file = 1 ;
DROP TABLE #temp_1;
END
我的 SQL Server 代理工作是
DECLARE @MONTH AS int = 0
DECLARE @dt datetime = GETDATE()
SET @MONTH = DATEPART(mm, DATEADD(mm, -1, @dt))
EXEC sp_Send_Email_Invalid_code @MONTH
【问题讨论】:
-
您的程序未发送电子邮件。也许您的意思是包含
msdb..sp_send_dbmail或其他内容? -
不要为 MySQL 和 SQL Server 使用标签,它们适用于不同的产品。这只会让看问题的人感到困惑。 EXEC msdb.dbo.sp_send_dbmail 是一个 SQL Server 过程。
标签: sql-server tsql