如何使用sql server proc在7天内提前7天通知用户许可证到期

如何使用sql server proc在7天内提前7天通知用户许可证到期,sql,sql-server,Sql,Sql Server,我在SQL server end_date和start_date列中有一个表,我想在许可证到期前七天和一天向用户发送电子邮件。怎么 我想在七天前和一天前向用户发送电子邮件 该执照即将到期 因此,如果您通过电子邮件发送不同措辞的到期通知,您可以将其分解为两个单独的查询 您确实需要每天运行它,或者使用调度程序,或者像其他海报所指出的那样使用代理作业 我还没有试过这个,所以你可能还需要在DateAdd周围设置演员阵容。我不确定你的数据类型是什么。通常最好张贴表格或部分表格,以便我们更好地回答问题 如果

我在SQL server end_date和start_date列中有一个表,我想在许可证到期前七天和一天向用户发送电子邮件。怎么

我想在七天前和一天前向用户发送电子邮件 该执照即将到期

因此,如果您通过电子邮件发送不同措辞的到期通知,您可以将其分解为两个单独的查询

您确实需要每天运行它,或者使用调度程序,或者像其他海报所指出的那样使用代理作业

我还没有试过这个,所以你可能还需要在DateAdd周围设置演员阵容。我不确定你的数据类型是什么。通常最好张贴表格或部分表格,以便我们更好地回答问题

如果您想要一个糟糕的mans调度程序(这是一种非常糟糕的实现方式),您可以执行以下操作:


你不能在一个进程中这样做。您可以通过定期运行的SQL Server代理作业或通过消息队列运行的SQL Server代理作业或windows服务来执行此操作!如果那是你想做的,是什么阻止了你?你不需要告诉我们你想做什么;你可以这么做。你有问题吗?如果是这样的话,请问一个,这样我们可以帮助你。一定要让我们看看你已经尝试了什么,以及你在哪里遇到了困难。谢谢
select * from mytable
where 
(CAST(end_date as DATE) = DateAdd(DD,1,GETDATE()))
OR
(CAST(end_date as DATE) = DateAdd(DD,7,GETDATE())) 
CREATE PROCEDURE MyBackgroundTask
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- The interval between cleanup attempts
    declare @timeToRun nvarchar(50)
    set @timeToRun = '03:33:33'

    while 1 = 1
    begin
        waitfor time @timeToRun
        begin
            execute [MyDatabaseName].[dbo].[MyDatabaseStoredProcedure];
        end
    end
END