如果在最后一小时没有插入记录,SQL Server将发送电子邮件

时间:2014-04-28 15:12:11

标签: sql sql-server

我希望每小时都能在表格中插入记录。我希望能够监控该表,如果在过去一小时内没有插入任何记录,则应该向我发送电子邮件警报。

最简单/最佳解决方案是什么?批量运行,监控工具还是别的什么?

1 个答案:

答案 0 :(得分:1)

步骤1)创建个人资料和帐户

您需要使用“配置数据库邮件向导”创建配置文件和帐户,该向导可以从“管理节点”中“数据库邮件”节点的“配置数据库邮件”上下文菜单中访问。此向导用于管理帐户,配置文件和数据库邮件全局设置

步骤2)

RUN:

sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO

步骤3)

USE msdb
GO
EXEC sp_send_dbmail @profile_name='yourprofilename',
@recipients='test@Example.com',
@subject='Test message',
@body='This is the body of the test message.
ongrates Database Mail Received By you Successfully.'

循环遍历表格

DECLARE @email_id NVARHCAR(450),@id BIGINT,@max_id BIGINT,@query NVARCHAR(1000)

SELECT @id=MIN(id),@max_id=MIN(id) FROM [email_adresses]

WHILE @id<@max_id
BEGIN
SELECT @email_id=email_id 
FROM [email_adresses]

set @query='sp_send_dbmail @profile_name=''yourprofilename'',
                    @recipients='''+@email_id+''',
                    @subject=''Test message'',
                    @body=''This is the body of the test message.
                    Congrates Database Mail Received By you Successfully.'''

EXEC @query
SELECT @id=MIN(id)FROM [email_adresses] where id>@id

END

步骤4)

展开SQL Server代理节点,右键单击SQL Server代理中的“作业”节点,然后选择“新建作业”

在“新作业”窗口中,在“常规”标签上输入作业名称和说明。

选择窗口左侧的“步骤”,然后点击底部的“新建”。

在“步骤”窗口中输入步骤名称,然后选择要对其运行查询的数据库。

粘贴要在命令窗口中运行的T-SQL命令,然后单击“确定”。

单击“新建作业”窗口左侧的“计划”菜单,然后输入计划信息(例如,每天和每次)。

点击“确定” - 应该是它。

从此处how to schedule a job for sql query to run daily?及此处How to send email from SQL Server?

复制