SQL Server更新列自动

时间:2015-10-08 13:24:11

标签: c# sql-server

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

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

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

我知道如何通过C#代码完成此操作,但如何自动执行此操作?

像每天脚本执行并启动电子邮件发送过程一样? 它是触发器还是不同的东西?有人可以帮助获得关于实施的正确术语和一些见解吗?

2 个答案:

答案 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发送电子邮件。