存储过程可根据表

时间:2018-08-14 15:47:28

标签: sql sql-server tsql stored-procedures

我正在尝试编写一个程序,其中仅当表在特定时间已更新时才运行查询。

表中实际上有一个时间戳,所以我只需要检查

IF table.update = GETDATE() THEN …

我什至不知道从哪里开始。

谁能指出我的方向,让我可以学习类似的东西,或者告诉我需要使用哪些功能?

2 个答案:

答案 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