Sql server 2008 如何在满足条件时自动激发Sql语句?
我有一个表Sql server 2008 如何在满足条件时自动激发Sql语句?,sql-server-2008,triggers,Sql Server 2008,Triggers,我有一个表Training有列T\u StartDate和T\u EndDate等等。现在我想如果保存的T_EndDate与今天的日期匹配,我想该列的记录应该自己删除。为此,我在过程中编写了一些代码,但我认为这不会像预期的那样工作,因为过程不能自动启动。 所以对于这个问题,我从互联网上读到,我需要一个触发器来完成这样的功能。但是我对触发器没有太多的想法。 那么请告诉我怎么做? 另外,我附上了一张我的桌子的图片,以便你们了解结构。 提前谢谢 只需添加一个计算列: alter table Train
Training
有列T\u StartDate
和T\u EndDate
等等。现在我想如果保存的T_EndDate
与今天的日期匹配,我想该列的记录应该自己删除。为此,我在过程中编写了一些代码,但我认为这不会像预期的那样工作,因为过程不能自动启动。
所以对于这个问题,我从互联网上读到,我需要一个触发器来完成这样的功能。但是我对触发器没有太多的想法。
那么请告诉我怎么做?
另外,我附上了一张我的桌子的图片,以便你们了解结构。
提前谢谢
只需添加一个计算列:
alter table Training add IsValid as (case when t_enddate < cast(getdate() as date) then 1 else 0 end)
然后,您可以在空闲时删除这些行——每月删除一次,每周删除一次
否则,您需要将作业设置为正好在午夜运行。否则,数据将在一段时间内无效。而且,如果您由于某种原因错过了更新,您可能会遇到问题。为什么要删除该记录?为什么不干脆挂个“NoLongerValid”标志或类似的东西呢?是的!!如果我更新我的表并将flag设置为false,这就可以了。但没有这样做的想法或自动查询ied#戈尔丹·林诺夫
create view v_Training as
select t.*
from Training
where IsValid = 1;