这是我在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
创建新的 SQL
代理作业,并添加事务处理 SQL 步骤:
update tab_name
set due = DATEDIFF(DAY, INSERTDT, UPDATEDDT) - DATEDIFF(DAY, INSERTDT, GETDATE())
显然,与触发器不同,您无法更新刚刚更新的触发器。 因此,这将根据其运行时间更新所有"到期"字段。
我会考虑创建一个存储的过程并让作业来运行它。 它更容易经理,并且将来不太可能被错过。