这是我在sql server中的触发器。我希望这个触发器自动触发(即每天)而不是更新......
create trigger trig_name
on tab_name
for update
as
begin
declare @id int,@innn int
declare @dif int
declare @inn int
set @id=(select whateverid from inserted)
set @inn = (select DATEDIFF(DAY,INSERTDT,UPDATEDDT) from tab_name where whateverid=@id)
set @innn =(select DATEDIFF(DAY,INSERTDT,GETDATE()) from tab_name where whateverid=@id)
set @dif = @inn-@innn
update tab_name set due=@dif from tab_name where whateverid= @id
end
答案 0 :(得分:1)
在这种情况下,最好阅读有关从this链接
为sql server安排作业的信息答案 1 :(得分:1)
创建新的SQL代理作业,并添加Transact SQL步骤:
update tab_name
set due = DATEDIFF(DAY, INSERTDT, UPDATEDDT) - DATEDIFF(DAY, INSERTDT, GETDATE())
显然,与触发器不同,您无法更新刚更新的触发器。因此,这将根据运行时间更新所有“到期”字段。
我会考虑创建一个存储过程并让工作来运行它。经理人更容易,将来也不太可能错过。