【问题标题】:How can I create an alert in SQL Server?如何在 SQL Server 中创建警报?
【发布时间】:2017-08-08 16:47:27
【问题描述】:

我有以下结构:

  • cho_id int
  • cho_nombre varchar(200)
  • cho_documento varchar(15)
  • cho_dirrecion varchar(100)
  • cho_telefono varchar(15)
  • cho_fec_vencimiento_lic 日期时间
  • cho_categoria int
  • est_id int

我有一排日期时间类型,我希望每次接近日期时在 15 天前向我发送警报并通过电子邮件发送给我。

如何在 SQL Server 中进行设计?它必须与存储过程有关吗?触发器?

【问题讨论】:

  • 编写存储过程并将其设置为计划作业。
  • 听起来像是一个简单的查询和 sp_send_dbmail 的代理作业

标签: sql-server stored-procedures triggers


【解决方案1】:

这是一个可用于过程的快速 shell,然后您可以将其安排为每天运行的作业。您可以根据需要更改IF 的逻辑。

create procedure myProc
as

if (select datediff(day,max(cho_fec_vencimiento_lic),getdate()) from SomeTable) = 15
begin
exec msdb.dbo.sp_send_dbmail 
                    @profile_name = null,
                    @recipients  = 'email@domain.org',
                    @body = 'This is your email alert',
                    @body_format = 'TEXT',
                    @subject = 'Alert'
end
go

sp_dend_dbmail reference

Schedule a job reference

【讨论】:

  • 完全不用担心@JoseAngel
  • 一个问题 Simon 在创建计划作业时需要编写要运行的 T-SQL 命令,我可以指定我想要的存储过程吗? @scsimon
  • 是的...只需将 exec myProc 放在 myProc 是您的过程名称的位置。此外,由于您不看时间,只看日期,我会安排它在晚上 11 点或当天的所有交易完成后运行。否则,您可能需要将 IF 语句中的 = 更改为
猜你喜欢
  • 2021-10-31
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多