在SQL Server数据库中,我有一个包含2列Status
和ExpiryDate
的表。
我想要一种机制,在Status
结束时将Expired
变为ExpiryDate
,并希望向电子邮件地址发送邮件通知。
UPDATE table
SET Status = 'expired'
WHERE ExpiryDate < GETDATE()
我知道如何通过C#代码完成此操作,但如何自动执行此操作?
像每天脚本执行并启动电子邮件发送过程一样? 它是触发器还是不同的东西?有人可以帮助获得关于实施的正确术语和一些见解吗?
答案 0 :(得分:1)
使用存储过程(作为作业安排)更新表并发送电子邮件。
要配置电子邮件选项,请转到对象资源管理器中的“管理”部分,右键单击“数据库邮件”,然后单击“配置数据库邮件
然后利用sp_send_dbmail
系统存储过程发送邮件。
答案 1 :(得分:1)
创建执行
的存储过程UPDATE table
SET Status = 'expired'
WHERE ExpiryDate < GETDATE()
然后在SQL Server中的SQL Server代理节点下,创建一个按照您需要的计划运行的作业。
请务必在存储过程中使用sp_send_dbmail
- https://msdn.microsoft.com/en-us/library/ms190307.aspx发送电子邮件。