如何自动触发mssql服务器中的触发器(即每天)

时间:2014-03-03 10:17:00

标签: sql-server

这是我在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

2 个答案:

答案 0 :(得分:1)

在这种情况下,最好阅读有关从this链接

为sql server安排作业的信息

答案 1 :(得分:1)

创建新的SQL代理作业,并添加Transact SQL步骤:

update tab_name 
set due = DATEDIFF(DAY, INSERTDT, UPDATEDDT) - DATEDIFF(DAY, INSERTDT, GETDATE())

显然,与触发器不同,您无法更新刚更新的触发器。因此,这将根据运行时间更新所有“到期”字段。

我会考虑创建一个存储过程并让工作来运行它。经理人更容易,将来也不太可能错过。