下面为发送邮件的SQL,存储过程异常数据通过begin try……end try begin catch……end catch 存储到T_SYS_ExceptionLog表中,然后通过定时检索,如果有异常就发送邮件,代码如下
create procedure [dbo].[proc_Sys_ExceptionSendEmail]
as
/********************************
--function:异常数据发送邮件
--author:zhujt
--create date:2016-12-210:25:41
*********************************/
begin
declare
@profileName varchar(100),
@Html varchar(max);
set @Html='
日志操作类型
日志标题
日志内容
文件路径
创建时间
'+
(select'tds'+case ExceptionType when1then'数据定时生成' when2then'数据操作' end +'tde', 'tds'+ExceptionTitle+'tde','tds'+ExceptionMessage+'tde','tds'+Module+'tde','tds'+CONVERT(varchar(23),CreateDate,120)+'tde'from T_SYS_ExceptionLog
where CreateDate>=CONVERT(varchar(10),DATEADD(DAY,-1,GETDATE()),120)+' 00:00:00'FOR XML PATH('tr'), ELEMENTS
)
+'
';select @profileName=name
from msdb.dbo.sysmail_profile x
where exists(select1from msdb.dbo.sysmail_principalprofile
where profile_id=x.profile_id
and is_default=0
);
if @profileName isnot null and LEN(@profileName)>0and @Html isnot null and LEN(@Html)>0
begin
set @Html=REPLACE(REPLACE(@Html,'tds','