配置Sql Server作业警报以在特定时间向用户发送电子邮件

时间:2014-07-10 06:20:14

标签: sql-server-2008-r2 sql-server-2012

我已经创建了一个工作提醒,用于每天向用户发送电子邮件。我使用过数据库邮件并编写了一个脚本,向属于特定类别的用户发送电子邮件。 但我想将此电子邮件仅发送给用户三天。电子邮件应仅发送给所有用户三天。

更新:

DECLARE @name VARCHAR(20),
@birthdate datetime,
@email NVARCHAR(50),
@id nvarchar(MAX)
DECLARE @body NVARCHAR(1000)
DECLARE CC1 CURSOR READ_ONLY
FOR
SELECT Name, Birthdate, Email
FROM TestDB.dbo.cust
OPEN CC1
FETCH NEXT FROM CC1 INTO 
@name, @birthdate, @email
WHILE @@FETCH_STATUS = 0
BEGIN
    SELECT @id= Ename  FROM TestDB.dbo.TestEmail
    IF @email = @id 
    BEGIN
    EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'vate',
    @recipients = 'vegeta@gmail.com',
    @body = 'The stored procedure finished successfully.',
    @subject = 'Automated Success Message' ;
    END
    FETCH NEXT FROM CC1 INTO 
    @name, @birthdate, @email
END
CLOSE CC1
DEALLOCATE CC1

1 个答案:

答案 0 :(得分:0)

首先,当您使用Management Studio创建作业(Management Studio> SQL Server代理>作业>新作业)时,您可以在“计划”选项卡上创建计划。

使用此向导创建作业后,您可以使用SQL脚本创建此作业(带有计划) - 向导顶部的“脚本”按钮。

以下是此脚本的一部分,它为作业创建计划:

DECLARE @schedule_id int
EXEC msdb.dbo.sp_add_jobschedule @job_name=N'backup_job', @name=N'my_schedule', 
        @enabled=1, 
        @freq_type=8, 
        @freq_interval=7, 
        @freq_subday_type=1, 
        @freq_subday_interval=0, 
        @freq_relative_interval=0, 
        @freq_recurrence_factor=1, 
        @active_start_date=20140709, 
        @active_end_date=99991231, 
        @active_start_time=0, 
        @active_end_time=235959, @schedule_id = @schedule_id OUTPUT
select @schedule_id
GO