sqlserver数据库使用存储过程和dbmail实现定时发送邮件_MsSql

上文已讲过如何在数据库中配置数据库邮件发送(备注: 数据库邮件功能是 基于SMTP实现的,首先在系统中 配置SMTP功能。即 在 “添加/删除程序”面板中 “增加/删除WINDOWS组件”,选中并双击 打开"IIS"或 “应用程序”,勾选 "SMTP SERVICE"然后 一路 点“下一步”即可。一般不需要这一步,直接配置即可)

本文给出一个使用实例,结合存储过程和Job来实现定时从数据库发送邮件:
1、创建存储过程,在新建的存储过程中调用sp_send_dbmail存储过程(注:代码中的\'只是添加代码时自动添加的转义字符,实质代码中只有单引号)

复制代码 代码如下:

Create PROCEDURE [dbo].[sp_send_error_alert]
AS
declare
@v_contentnvarchar(max),
@v_mail_tonvarchar(500),
@v_bodynvarchar(max),
@v_titilenvarchar(100)
,@v_br_idnvarchar(50)
,@v_installmentsnvarchar(10)
,@v_remarknvarchar(100)
BEGIN
SETNOCOUNTON;
set@v_titile=\'测试邮件内容标题;
set@v_content=\'\';

DECLAREcursor_repaymentCURSORFOR
SELECT
br_id
,installments
,remark
fromdw_account_repaymentt
where
status!=1
andis_del=0
orderbyt.add_datetimedesc;

OPENcursor_repayment
FETCHNEXTFROMcursor_repaymentINTO
@v_br_id--标ID
,@v_installments--期数
,@v_remark--错误描述
WHILE@@FETCH_STATUS=0
BEGIN

set@v_content=@v_content+\'<tr><td>\'+@v_br_id+\'</td>\'+\'<td>\'+@v_installments+\'</td>\'+\'<td>\'+@v_remark+\'</td></tr>\';

fetchnextfromcursor_repaymentinto
@v_br_id--标ID
,@v_installments--期数
,@v_remark--错误描述
end;

CLOSEcursor_repayment;--关闭游标
DEALLOCATEcursor_repayment;--清空游标

ifLEN(@v_content)>0
begin
SET@v_body=\'<html><H1>自动还款所有异常列表</H1><bodybgcolor=white><tableborder=1><tr><th>标ID</th><th>期数</th><th>错误描述</th></tr>\'
SET@v_body=@v_body+@v_content+\'</table></body></html>\'
EXECmsdb.dbo.sp_send_dbmail
@recipients=N\'接收用户地址1@qq.com;接收用户地址2@qq.com\',@body=@v_body,@body_format=\'HTML\'
,@subject=@v_titile,@profile_name=\'上一节点的配置文件名(db_profiler)\

创建Job(SqlServer代理->作业),设置执行参数,定时执行此存储过程,即可实现定时发送邮件效果。

时间: 2024-10-24 19:41:31

sqlserver数据库使用存储过程和dbmail实现定时发送邮件_MsSql的相关文章

SQLserver 数据库危险存储过程删除与恢复方法_MsSql

今天为了实现SQLServer/" target="_blank">sqlserver的复制功能,因为以前删除了很多的sqlserver的一些会导致不安全因素的扩展,导致很多功能无法用,没有办法需要重新的恢复扩展. 曾经遇过,差点抓狂,有装MSSQL的朋友,赶紧试一下,删除以下的组件.当然,前提是你要把自己的数据库搞定后再去删除,否则组件删除后很多功能不能用,为了安全,就得牺牲某些功能,当然,像我这类的,我除了把MSSQL导入后,基本上一年用不到两次,所以,我是会毫不犹

SQLSERVER数据库备份后无法还原的解决办法_MsSql

有时候完全备份, 当还原的时候说不时数据库文件不让还原, 解决办法: 可以直接复制数据库文件, xxx.mdf 和 xxx.ldf (实际复制过程中需要先停止sqlserver服务才可以) 用 sp_attach_db 存储过程 就能搞定. 示例 下面的示例将 pubs 中的两个文件附加到当前服务器. EXEC sp_attach_db @dbname = N'pubs', @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Da

sqlserver 函数、存储过程、游标与事务模板_MsSql

1.标量函数:结果为一个单一的值,可包含逻辑处理过程.其中不能用getdate()之类的不确定性系统函数. 复制代码 代码如下: --标量值函数 -- ================================================ -- Template generated from Template Explorer using: -- Create Scalar Function (New Menu).SQL -- -- Use the Specify Values for

查询Sqlserver数据库死锁的一个存储过程分享_MsSql

使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉.利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里. 创建sp_who_lock存储过程 CREATE procedure sp_who_lock as begin declare @spid int declare @blk int declare @count int de

SQLServer数据库同步准实时方案

server|sqlserver|数据|数据库 1. 需求    1)如何将在线运营的SQLServer数据库数据及时同步到另外一个SQLServer数据库.    2)数据仓库系统的数据抽取会对源系统造成巨大压力,严重影响性能和响应速度.如何将生产数据快速抽取到历史数据仓库,改善业务系统的性能.    3)分布式数据库,如何将分部的数据库数据复制到总部数据库,以利于总部汇总统计.这些业务应用中常见的SQLServer数据库同步需求,都需专业的复制系统来完成. 2. 同步方案   浪擎·镜像系统

使用SQLSERVER的扩展存储过程实现远程备份与恢复

server|sqlserver|备份|存储过程|恢复  最近我在为公司的框架程序(以数据应用为导向的应用体系)做数据管理模块,这个模块的需求比较简单:备份.恢复和清理日志.我公司的软件基本上以C/S为基本架构,所以数据管理模块中两个主要的功能'备份与恢复'都可能会在Client端操作,备份与恢复'的文件也都有可能存储在client端,因而这个数据管理模块就必须能够实现在远程备份与恢复数据库.  文章的前提阐述完了,就该说说如何具体实现吧.其实都很简单,我想写个远程备份的测试实例给大家看,就能够

挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)

原文:挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)   这个工具主要就是自动备份数据库,一键还原数据库,发送备份数据库日志报告到邮箱,自动压缩备份好的数据库 定期执行数据库备份任务,取代SSMS的维护计划,上传数据库备份文件到FTP服务器.其他网络硬盘等 软件有免费和付费两种模式,不过本人觉得免费版本的功能已经足够了 支持SQLSERVER版本:SQLSERVER20

关于sqlserver数据库数据补足的问题

问题描述 关于sqlserver数据库数据补足的问题 我现在要统计A表里面的数据.比如2010年1月到2012年一月,或者上海市,北京市.或者按会员来统计.这里就碰到一个问题,比如上海市2010年2月有数据,而北京市2月没有数据.怎么补足这个数据.我考虑过对数据库表没数据插入一个0进去.后来觉得又不行,因为条件太多了.我这边会员有很多卡,需要按类别统计,补数据的话数据量非常大.有什么方法存储过程实现? 解决方案 你可以用存储过程将这些数据插入到一个临时表里, 然后这个临时表里的字段(需要补足的字

如何把SQLServer数据库从高版本降级到低版本?

原文:如何把SQLServer数据库从高版本降级到低版本? 由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接[分离/附加]或者[备份/还原]数据库,在不同版本之间存放.往往就会遇到版本不兼容的问题.前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错: 从运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况下,从低版本升级到高版本,只要不