SQL Server自动更新列

本文关键字:更新 Server SQL | 更新日期: 2023-09-27 18:16:56

在SQL Server数据库中,我有一个表,有2列,StatusExpiryDate

我想要一种机制,当ExpiryDate结束时,将Status变为Expired,并向电子邮件地址发送邮件通知。

UPDATE table 
SET Status = 'expired' 
WHERE ExpiryDate < GETDATE()

我知道如何通过c#代码实现它,但是我如何使它自动化呢?

像每天脚本执行和启动电子邮件发送过程?是触发还是别的什么?有人能帮我找到合适的术语和一些关于实现的见解吗?

SQL Server自动更新列

使用存储过程(调度作为作业)来更新表和发送电子邮件。

要配置电子邮件选项,请转到对象资源管理器的管理部分,右键单击数据库邮件,然后单击配置数据库邮件。

然后利用sp_send_dbmail系统存储过程发送邮件。

创建执行

的存储过程
UPDATE table 
SET Status = 'expired' 
WHERE ExpiryDate < GETDATE()

然后在SQL Server的SQL Server代理节点下,创建一个按照您需要的时间表运行的作业。

确保在您的存储过程中也使用sp_send_dbmail - https://msdn.microsoft.com/en-us/library/ms190307.aspx来发送您的电子邮件。