SQL Server2008本地数据库调用SP发送邮件
一、首先要对本地数据库做配置
1.通过使用数据库邮件配置向导和sp_configure存储过程配置启用数据库邮件:






注:服务器名称填写发送服务器的路径或者IP,电子邮件地址为寄件者地址





配置好数据库邮件账户和配件文件后,使用SQL Mail XPs选项在此服务器上启用SQL Mail(改选项默认是关闭的)
sp_configure 'show advanced options' , 1
go
Reconfigure;
go
sp_configure 'SQL Mail XPs' , 1
go
Reconfigure;
go
设置立即生效,无需停止并重新重启服务器
查看数据库邮件日志:

二、收到郵件顯示

三、存储过程代码
USE 数据库名称
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE 存储过程名称
AS
BEGIN
SET NOCOUNT ON;
DECLARE @MailTo NVARCHAR(MAX)
DECLARE @Mailcc NVARCHAR(MAX)
DECLARE @MailBcc NVARCHAR(MAX)
DECLARE @MailSubject NVARCHAR(255)
DECLARE @MailBody NVARCHAR(MAX)
DECLARE @MailFormat NVARCHAR(20)
DECLARE @SignCount NVARCHAR(50)
DECLARE @DayID NVARCHAR(20)
SET @DayId=CONVERT(NVARCHAR(10),DATEADD(DAY,-1,GETDATE()),111)
SELECT @SignCount=COUNT(1) FROM [GSClassDB].[dbo].[Class_Abnorm] WHERE DayID='2017/12/03'
SET @MailSubject='非責任制出勤共'+@SignCount+'筆,請注意查收!'
SET @MailTo='ximi@com'
SET @Mailcc='ximi@com'
SET @MailBcc=''
SET @MailBody=''
SET @MailFormat='HTML'
SET @MailBody=
N'Dear ALL:<br>非責任制出勤共'+@SignCount+'筆,請注意查收,謝謝!<br><H4> 列表如下: </H>'+
N'<table border="1" style="font-size:11px;text-align:center" width="60%">'+
N'<tr style="font-size:11"><th>工號</th>'+
N'<th>姓名</th>'+
N'<th>部门</th>'+
CAST( ( SELECT
td=EmpID, ' ' ,
td=EmpName, ' ' ,
td=DeptID, ' '
FROM [GSClassDB].[dbo].[Class_Abnorm] WHERE DayID='2017/12/03'
FOR XML PATH( ' t r ' ),TYPE
)AS NVARCHAR(MAX))+
N'</table><br>以上为系统发送,请勿回复,谢谢!!<资讯系统部-课>'
DECLARE @i int
BEGIN
SET @i=0;
IF(@SignCount>1)
EXEC msdb.dbo.sp_send_dbmail
@profile_name='ximi',
@recipients=@MailTo,
@copy_recipients=@Mailcc,
@blind_copy_recipients=@MailBcc,
@subject=@MailSubject,
@body=@MailBody,
@body_format=@MailFormat
SET @i=1;
END
END
SQL Server2008本地数据库调用SP发送邮件的更多相关文章
- SQL Server2008附加数据库之后显示为只读时解决方法
啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定. 方案二: 使用sa登录SQL Server2008附加数据库 ...
- SQL Server2008附加数据库之后显示为只读
SQL Server2008附加数据库之后显示为只读时解决方法 啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定 ...
- (转载)SQL Server2008附加数据库之后显示为只读时解决方法
SQL Server2008附加数据库之后显示为只读时解决方法 啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定 ...
- SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用
这篇文章主要介绍了SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用,需要的朋友可以参考下 一.配置主备机 1. 服务器基本信息 主机名称为:HOST_ ...
- [转] sql server 跨数据库调用存储过程
A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...
- SQL Server2008附加数据库失败
今天旁晚时分,我准备把老师在上课时候发给我们的一个数据库附加到我的SQL Server2008上面去,本来在学校机房用的SQL Server2000是很顺利地就成功了,但是把*.mdf文件附加到我的0 ...
- SQL Server 本地数据库登录不上 解决方法
sql本地数据库登录不了的话.先看看自己计算机 服务 SQL server (MSSQLSERVER) 没有打开的话,请打开. 今天说的情景模式是 你误删了windows登录:禁用了sa登录:s ...
- SQL Server2008分离数据库
1.右击数据库 2.Tasks 3.点击Detach 4.选取Drop Connections-->点击确定 5.开启本地数据库默认存储路径C:\Program Files\Microsoft ...
- SQL Server2008创建数据库语法
use mastergo if exists(select * from sys.databases where name='MySchool') drop database MySchool -- ...
随机推荐
- you are not allowed to push code to protected branches on this project(转)
.. 图 1-1 报错:failed to push some refs to 'http://*******.git'. 一痛瞎踅摸之后,远程控制电脑,在H电脑上,重新建立了一个test项目,之后走 ...
- IntelliJ Idea设置默认换行符 Idea
http://hbyepei.github.io/2016/03/13/设置默认换行符/
- VS2019,打开项目之后显示:System.NullReferenceException: 未将对象引用设置到对象的实例
关闭项目,删除项目文件夹下的隐藏文件夹.vs和bin/obj文件夹
- 【MySQL】Mac通过brew安装的MySQL重启方法
问题 在 Mac 上通过 brew install mysql 安装的的MySQL使用基本MySQL命令重启会失败: mysql.server stop mysql.server start mysq ...
- jsoup获取文章内容
jsoup爬取文章内容 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Se ...
- MyBatis原理总结(前期准备)
1.不同框架解决不用问题,框架封装了很多细节,开发者可以使用简单的方式实现功能. 2.三层架构: 1.表现层 2.业务层 3.持久层 都有相应的处理框架. 3.持久层的技术解决方案: JDBC技 ...
- 搭建iscsi存储系统(一)
(1).DAS.SAN.NAS三种存储方式 参考:https://blog.csdn.net/qq_23348071/article/details/73963407 DAS全称Direct-Atta ...
- 关于PF_INET和AF_INET的区别
在写网络程序的时候,建立TCP socket: sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构 ...
- asp.net Forms身份验证详解
在做网站的时候,都会用到用户登录的功能.对于一些敏感的资源,我们只希望被授权的用户才能够访问,这让然需要用户的身份验证.对于初学者,通常将用户登录信息存放在Session中,笔者在刚接触到asp.ne ...
- FreeRTOS 时间片,外部中断,任务优先级的一个疑问
时间片1ms 假设有两个任务,A和B,A任务等待中断里面发出的信号量,B任务在运行 此时,B任务运行了300us的时候中断发生,发出信号量,那么任务A接收到信号量,A任务优先级高,A任务运行 有个问题 ...