我正在尝试编写一个程序,其中仅当表在特定时间已更新时才运行查询。
表中实际上有一个时间戳,所以我只需要检查
IF table.update = GETDATE() THEN …
我什至不知道从哪里开始。
谁能指出我的方向,让我可以学习类似的东西,或者告诉我需要使用哪些功能?
答案 0 :(得分:2)
您需要先查看如何使用数据库作业。 由于没有存储过程可以自行启动。
在作业内部,您可以定义存储过程的运行频率和时间。
作业中的代码可以是简单的SQL。
OR
您可以在表上创建一个更新触发器。并根据时间在触发器内部调用存储过程。
更新:
刚刚看到了您的最新评论。我公司有一个类似的应用程序。我们使用数据库作业每天在特定时间发送一批自动发送的电子邮件。
答案 1 :(得分:0)
在UPDATE方法中需要一个触发器,当它保存在单独的表中时,可以使其运行。 新表必须具有主键和带有GETDATE()方法的时间戳。 要实现触发器:
create trigger trTriggerTest on tableName after update
As
Begin
set nocount on;
INSERT INTO TimeRegister(Id, date, ...) VALUES (@Id, GetDate(), ...);
end
go
要注册新表:
INSERT INTO TimeRegister(Id, date, ...) VALUES (@Id, GetDate(), ...);
文档:Trigger