SQL Server 使用数据库发送邮件(sp_send_dbmail)
CSDN广告是越来越多了,所有博客笔记不再更新,新网址 DotNet笔记
项目开发中,很多地方需要发送邮件,比如下订单,取消订单等等,可以通过程序代码(c#,java等)发送,亦可以使用数据库的触发器通过sql语句发送.
使用数据库发送邮件,一般使用存储过程 xp_sendmail 或则 sp_send_dbmail
(一)
xp_sendmail:已经渐渐不被使用,其使用方式需求 1: 需要32位的windows操作系统(本人电脑64位,所以在我电脑上我没有用成功过) 2:需要指定默认邮件客户端 3:权限
使用方式:可参考文档xp_sendmail 具体的方式自己琢磨吧
(二)
sp_send_dbmail 存储过程,首先需要做的是配置工作
数据库邮件配置向导提供了一种管理数据库邮件配置对象的简便方式。数据库邮件配置向导将根据需要启用数据库邮件。
数据库邮件配置向导执行下列任务:
- 安装数据库邮件。
- 管理数据库邮件帐户和配置文件。
- 管理配置文件安全性。
- 查看或更改系统参数。
“安装数据库邮件”选项将指导您完成首次安装数据库邮件时需要执行的所有任务。其他选项帮助您完成特定的设置和维护任务。
从对象资源管理器启动数据库邮件配置向导。连接到 SQL Server 的一个实例。展开“管理”,右键单击“数据库邮件”,然后选择“配置数据库邮件”。
若要使用此向导,您必须是 sysadmin 固定服务器角色的成员。您必须是msdb 数据库中的DatabaseMailUserRole 数据库角色的成员,才能发送数据库邮件,具体的配置方式
可以参考:前辈的结晶
使用方式就简单多了:
实例:
EXEC msdb.dbo.sp_send_dbmail@profile_name = 'AdventureWorks Administrator',@recipients = 'danw@Adventure-Works.com',@body = 'The stored procedure finished successfully.',@subject = 'Automated Success Message' ;
实例:
EXEC msdb.dbo.sp_send_dbmail@profile_name = 'AdventureWorks Administrator',@recipients = 'danw@Adventure-Works.com',@query = 'SELECT COUNT(*) FROM AdventureWorks.Production.WorkOrderWHERE DueDate > ''2004-04-30''AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,@subject = 'Work Order Count',@attach_query_result_as_file = 1 ;
实例:
begin
declare @id int;
declare @price int;
set @id=605;
while (@id>300 and @id<607)
begin
declare @name nvarchar(20);
select @name=dp.ProductAlternateKey,@price=dp.ListPrice from DimProduct dp where ProductKey=@id;
set @id=@id+1;
declare @m_body nvarchar(50);
set @m_body=convert(nvarchar(20),N'商品货号为')+convert(nvarchar(20),@id)+N'的商品'+N'价格为'+convert(nvarchar(20),@price);
declare @m_subject nvarchar(20);
set @m_subject=N'商品货号为'+convert(nvarchar(20),@id)+N'商品的价格'EXEC msdb.dbo.sp_send_dbmail@profile_name = 'DB_Mail',@recipients = '1442919817@qq.com',@body = @m_body,@subject = @m_subject,@body_format='TEXT' ;
end
end
注意问题: 如果出现 中文乱码,请在中文前面加上N,如
set @m_body=convert(nvarchar(20),N'商品货号为')+convert(nvarchar(20),@id)+N'的商品'+N'价格为'+convert(nvarchar(20),@price);
(三)
发送日志的读取,以及发送事件的读取
SELECT * FROM msdb.dbo.sysmail_allitems
SELECT * FROM msdb.dbo.sysmail_event_log
结果如下
SQL Server 使用数据库发送邮件(sp_send_dbmail)相关推荐
- 【转蝈蝈俊.net 】SQL Server 2005 配置发送邮件
SQL Server 2005 配置发送邮件 这个教程是使用SQL Server Management Studio的管理工具完成配置的,其实这个配置也可以通过一系列的SQL语句完成配置. 使用SQL ...
- SQL Server 2005 数据库邮件 使用要点
1 利用SQL Server 2005数据库邮件,首先启用数据库邮件服务, 如下:打开SQL Server"配置工具"中的"外围应用配置器",选择"功 ...
- SQL Server系统数据库– msdb数据库
介绍 (Introduction) This article is the third I am writing about Microsoft SQL system databases. 本文是我正 ...
- 使用sql server+jmail组件发送邮件
使用sql server+jmail组件发送邮件 预备知识 1.OLE自动化函数 OLE自动化使应用程序能够对另一个应用程序中实现的对象进行操作,或者将对象公开以便可以对其进行操作.自 ...
- [转]实战 SQL Server 2008 数据库误删除数据的恢复
实战 SQL Server 2008 数据库误删除数据的恢复 关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete ...
- 同步SQL Server 2000 数据库
为什么要同步SQL Server 2000 数据库,它都用在什么场合 数据实时备份同步,数据库服务器出问题时我们也有其正常工作时的备份 数据实时备份同步,一台服务器负载不起时,可以用来做负载均衡 数据 ...
- sqlserver2000换成mysql_将Microsoft SQL Server 2000数据库转换成MySQL数据库
1. 下载并安装MyODBC.(如果是XP请下载5.3的旧版本,8.x的新版本运行有问题) 2. 创建一个空的MySQL数据库. 3. 在Windows >> 控制面板 >> ...
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.8 创建数据库...
本节书摘来自异步社区出版社<PowerShell V3-SQL Server 2012数据库自动化运维权威指南>一书中的第2章,第2.8节,作者:[加拿大]Donabel Santos,更 ...
- 使用Source Safe for SQL Server解决数据库版本管理问题
使用Source Safe for SQL Server解决数据库版本管理问题 参考文章: (1)使用Source Safe for SQL Server解决数据库版本管理问题 (2)https:// ...
最新文章
- 域控制器安装过程中断电!与Windows Server 2008 林功能级别提升之“冬夜”分享...
- 用计算机做表格的超链接,excel表格中超链接的使用怎么设置
- python交集和补集的符号_python的交集、并集、差集
- 【Git 】命令总结记录
- Daily scrum[2013.11.28]
- 第一次能够在电影开场前20分钟到的经历:感谢滴答清单
- ubuntu16.04设置ssh免密码登录
- 关于知识图谱,各路大神最近都在读哪些论文?
- Reservoir Computing: Harnessing a Universal Dynamical System
- 95-140-110-源码-transform-算子keyBy
- php解析命令行参数选项,PHP 命令行参数解析工具类的示例代码
- 给Emacs安装一个脚踏板: 用Windows/Menu键作为key modifier
- JAVA并发容器之CopyOnWrite容器
- 与孩子一起学编程07章
- win10安装mvn,安装ojdbc7.jar
- linux redis配置文件位置,Linux 安装配置Redis
- window10运行不了1stopt_函数模型分析画图软件-1stopt非线性拟合工具Win10专业版1.7免费版 - 维维软件园...
- 微信更换绑定手机人工服务器,微信更换已绑定手机号码的操作方法
- nginx的安装以及简单代理域名
- 微博运营工具及数据分析实战全集百度云
热门文章
- C语言:最大公约数。
- 武汉大学和华中科技大学计算机哪个好,华科算不算十大名校 武汉大学和华中科技大学哪个好?...
- C++创建windows窗口
- 窗口的创建CreateWindow/CreateWindowEx函数使用说明
- Beam Search与Prefix Beam Search的理解与python实现
- 一句话的结束!句号问号叹号
- hexo博客的备份和迁移
- android 游戏降低画质6,怎么改善安卓游戏画面?
- 用Facebook做广告和营销,你需要注意哪些问题?
- 学生管理系统的mysql数据库设计_MySQL数据库--学生管理系统数据库设计