触发器的使用 sqlserver中 数据库自动发送邮件功能

有一天在群里

有一个小孩子问:当一张表新增记录后,我要给这条记录关联联系人发送邮件,怎么配置数据库,求教

孤陋寡闻的我:不应该和配置数据库有关系吧  你就在代码里面写了insert 操作之后 调用发送邮件的方法就行了啊?

那个小孩子说:查了说数据库可以配置发送邮件的功能,但是具体的一些触发条件不会写,想请大神们指导一下

哦。。。。原来数据库可以配置发送邮件   具体配置步骤 我没有看。。哈哈哈

数据库可以配置发送邮件:具体教程,搜下面的地址 

http://jingyan.baidu.com/article/c1a3101e50f4a5de656debff.html

蓝后,我就给这个小孩子写了下面的一段代码

 Create TRIGGER tri_email        --tri_email为随意取的触发器的名字
   ON  [dbo].[ec_goods]         --[dbo].[ec_goods]为插入数据的表名
   AFTER insert                --insert操作之后
AS
BEGIN
    if exists(select * from inserted) --表示插入一条数据成功 
    begin
    declare @content nvarchar(max) ,@recipients1 nvarchar(max)
    select @content=i.GoodName+'|'+i.GoodID from inserted i;  --从刚插入数据的表中随意抽取出来两个字段组成一个邮件内容
    select @recipients1=i.GoodDescription from inserted i;   --从刚插入数据的表中查询出对应的邮箱账号
        exec msdb.dbo.sp_send_dbmail @profile_name='SQLProfile',--数据库发送邮件的存储过程 通过你刚才设置的 就生成了
        @recipients=@recipients1,      --把刚才取出来的邮箱账号赋值给存储过程中的recipients参数 
        @subject='sql server send email by trigger',--   存储过程的subject参数
        @body=@content          --把刚才取出来的内容赋值给存储过程的body参数
    end
 
END
GO
 并且告诉他:
 这样应该是可以动态关联邮箱账号,并且在插入一条数据之后 发送邮件了
他有一个疑问: 我现在有个不明白的就是触发器我正常保存在哪里?
我就给他分析了一下下:Create TRIGGER tri_email        --tri_email为随意取的触发器的名字
   ON  [dbo].[ec_goods]         --[dbo].[ec_goods]为插入数据的表名,
 你看这句话,是为一个表上创建一个触发器 
 上面的方法不一定成功哈,那是我一次性写出来的,一次性写出来的,应该都不会成功吧,吼吼吼。我记录下来就是我自己看看的,以后遇到问题,如果不对,我再动态改,我就先记录下来


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值