SSMS - 每日,每周和每月更改列值

问题描述 投票:0回答:2

我仍然是SSMS的新手,但我正在尝试为人工智能角色实现每周和每月的排行榜,这将根据数据库中的平均步数值每日更新,方差为0.5x - 1.5x值。

我还想分别每周和每月重置每周和每月的值(不担心现在存储旧的分数)。

我如何在数据库中执行此操作?

这是我的表:

培训师表ID,名称,AverageSteps,WeeklySteps,MonthySteps

我在获取数值的数学部分很好,但是

  • 如何运行事件/脚本以使用平均步数值更新每周和每月步骤(这将每天进行一次)?
  • 如何运行事件/脚本以重置每周的每周步骤,以及每月的每月步骤?

我知道我想做的事情是可能的 - 我只是不确定 - 有没有人知道关于这个主题的任何好的教程?

sql-server database ssms database-events
2个回答
0
投票

就像@ADyson所说的那样,一个SQL Agent工作就可以解决这个问题了。您可以将作业设置为每月/每周/每天运行。

以下是用于设置SQL代理作业的Microsoft文档的链接:https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-job

调度作业肯定还有其他选项,但由于您正在执行的操作包含在SQL Server中,因此Agent作业最有意义。


0
投票

我将创建一个存储过程来执行更新。然后我计划使用SQL Server代理作业每天运行存储过程。

在存储过程中,您有三个部分。每次存储的proc运行时,第一部分代码都会运行,它会使用WeeklySteps值更新MonthlyStepsAverageSteps值。

下一节将包含在IF块中,并将重置WeeklySteps值。你的IF条件是这样的:

IF DATEPART(WEEKDAY,GETDATE()) = 1 --This is true only on Sundays

最后一节也将包含在IF块中,并将重置MonthlySteps值。你的IF条件是这样的:

IF DATEPART(DAY,GETDATE()) = 1 --This is true only on the first of the month
© www.soinside.com 2019 - 2024. All rights reserved.