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