In this article I will explain with an example, how to implement automated email notification using SQL Server Job Scheduler.
This article will illustrate, how to send automatic email notification to email address from the database based on some condition using SQL Server Job Schedular.
This article makes use of SQL Server 2022. It is also applicable to SQL Server 2016, 2017 and 2019 versions.
Note: In order to verify whether SQL Server Agent is available in SQL Server Management Studio (SSMS), please refer my article SQL Server Agent Missing in SQL Server Management Studio (SSMS).
 
 

Database

I have made use of the following table Customers with the schema as follows.
Automated Email Notifications using SQL Server Job Schedular
 
I have already inserted few records in the table.
Automated Email Notifications using SQL Server Job Schedular
 
Note: You can download the database table SQL by clicking the download link below.
          Download SQL file
 
 

Script for sending email using SQL Server Job Schedular

Following script will be used to send email using SQL Server Job Schedular.
Inside the script, a WHILE loop will be executed over the records of Customers table using Cursor.
Note: For more details on Cursor in SQL Server, please refer my article What is Cursor in SQL Server and how it works.
 
Inside the WHILE loop, each record’s birth day and birth month is matched with current day and month.
If matching record is found, then an email is sent to the particular customer’s email address stored in the table using the msdb.dbo.sp_send_dbmail Stored Procedure.
Note: For more details on configuring and sending email in SQL Server, please refer my article Send Email in SQL Server using Stored Procedure.
 
DECLARE @name VARCHAR(20),
    @birthdate DATETIME,
    @email NVARCHAR(50),
    @body NVARCHAR(1000)
 
DECLARE C1 CURSOR READ_ONLY
FOR
SELECT [Name], [BirthDate], [Email]
FROM [Customers]
 
OPEN C1
FETCH NEXT FROM C1 INTO
@name, @birthdate, @email
WHILE @@FETCH_STATUS= 0
BEGIN
      IF DATEPART(DAY, @birthdate)=DATEPART(DAY,GETDATE())
         AND DATEPART(MONTH, @birthdate)=DATEPART(MONTH,GETDATE())
      BEGIN
            SET @body ='<b>Happy Birthday '+ @name +'</b>.<br />'
                      +'Many happy returns of the day.'
                      +'<br /><br />ASPSnippets Team'
            EXEC msdb.dbo.sp_send_dbmail
                  @profile_name ='Mudassar_Email_Profile'
               ,@recipients = @email
               ,@subject ='Birthday Wishes'
               ,@body = @body
               ,@body_format ='HTML'
              ,@importance ='HIGH'
      END
      FETCH NEXT FROM C1 INTO
      @name, @birthdate, @email
END
CLOSE C1
DEALLOCATE C1
 
 

Steps for creating Job and Scheduling in SQL Server

In order to create Job Schedular, please follow the below steps.
First, open SQL Server Management Studio, connect to the instance of the SQL Server Database Engine and expand that instance.
Next, expand the SQL Server Agent and right click on Jobs Folder and select New Job.
Automated Email Notifications using SQL Server Job Schedular
 
Inside the New Job dialog window, specify the name of the job in the Name TextBox.
Automated Email Notifications using SQL Server Job Schedular
 
Then, select the Steps tab from left panel and click on the New button.
Automated Email Notifications using SQL Server Job Schedular
 
Inside the New Job Step dialog window, set the following details:
Step name – Specify the name for the step.
Type – Select Transact SQL Script type. Here it is specified as Transact-SQL script (T-SQL).
Database – Select the database on which the script will be run.
Command – The SQL Script which will be run on Job Schedular.
After filling the details, click on OK Button.
Automated Email Notifications using SQL Server Job Schedular
 
Next, select the Schedules tab in the left panel and click on the New button.
Automated Email Notifications using SQL Server Job Schedular
 
Inside the New Job Schedule dialog window, set the following details:
Name – Name of the schedule.
Schedule type – Select schedule type. Set as Recurring since it will run on daily basis.
Frequency:
Occurs – Here it is specified as Daily.
Recurs every – Specify the number of days. Here it is specified as 1, so that it will be run every day.
Daily Frequency – Select the frequency RadioButton i.e. Occurs once at or Occurs every.
If Occurs once at is selected, then it will be executed on the specified time.
If Occurs every is selected, then  regular intervals between a specified period specified using Starting at and Ending at time.
Duration – It specifies the duration of job to be executed. In this case it is specified as No end date.
After filling the details, click on OK button.
Automated Email Notifications using SQL Server Job Schedular
 
Finally, click on OK button. Once the Job is added, right click on the Job you added and select Start Job at Step.
Automated Email Notifications using SQL Server Job Schedular
 
Once the job is scheduled and started successfully, you will see the success dialog message.
Automated Email Notifications using SQL Server Job Schedular
 
 

Downloads