Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 337
  • Last Modified:

Send an Email on Record Update

hi,
I want to know what is the best way of sending an email notifications from a database when a record is updated?
I have been reading a lot of posts on how we are not suppose to send an email from a trigger.
I am using SQL Server 2008 and I have a table called Project and a table called Employee, I want to be able to send an email to selected users in the Employee table (their emails are stored in EmailAddress Field, and only "Admins" Employees with their AccessLevel is set to 2) when the Project.Status field changes to 0 or 1 in the Project table

how can I do this?
Thanks
0
smaguire
Asked:
smaguire
  • 4
  • 2
  • 2
1 Solution
 
JestersGrindCommented:
If you're using a stored procedure to update the Project.Status field, you could change it to also send an email.

Greg


0
 
smaguireAuthor Commented:
No, I have a web application that enables the enduser to update any project. no stored procedure in the process.
I have it working using visual studio - C# code, but I want the code to be more dynamic where I don't have to compile the entire code everytime i need to subscribe a user to the email notification alert.
 
Thanks
0
 
JestersGrindCommented:
In that case, a trigger might be your best option.

Greg


0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 
smaguireAuthor Commented:
Thanks Greg for your reply,
I just finished reading some posts suggesting that NS is no longer in SQL Server 2008, and Triggers will not be recommended since if they do fail to contact the mail server, the commit will take a long time.
Now back to your original suggestion of using a SP, How can I accomplish that?
Thanks
0
 
RiteshShahCommented:
you could do something like below script. script is just example, you can make it more customize for your need.




create proc updateANDemail
as
begin
 
update table1 set field1='abc' where field1='ab'
 
EXEC master.dbo.xp_sendmail 
    @recipients=N'ritesh_a_shah@yahoo.com',
     @message=N'records updated',
     @copy_recipients=N'rits4friends@gmail.com',
     @subject=N'update' ;
 
 
end

Open in new window

0
 
smaguireAuthor Commented:
Thanks RiteshShah for your reply,
I will have to try your code later on but will I be able to do something like this:
@message=field1            
What is the 'N' for?
Thanks
0
 
RiteshShahCommented:
you can remove N, its a prefix before string variable.... as long as field1 concern, than you would have to do it like:

create proc updateANDemail
as
begin

declare @val='ABC'

update table1 set field1=@val where field1='ab'
 
EXEC master.dbo.xp_sendmail
    @recipients='ritesh_a_shah@yahoo.com',
     @message=@val,
     @copy_recipients='rits4friends@gmail.com',
     @subject='update' ;
 end
0
 
smaguireAuthor Commented:
Thanks
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now