2015-12-21 118 views
0

我在我的leavemaster表中有一个字段“总计字段”。现在我的需求是自动更新这个字段,以便在新年开始时增加15天,即1月1日。我想通过触发来使用它。但是当我尝试实现它时没有帮助。 任何人都可以帮助我做到这一点?在那里我已经创建批处理文件如下任何其他想法,这样做 在此先感谢...新年开始时自动更新字段SQL

SQLCMD -E -Timesheet -ic:\ BAT \ UpdateTotalLeave.sql

和我的SQL文件如下:

UPDATE empTable SET TotalLeave = TotalLeave + 15

和我设置的Windows任务调度,如图图像(我设置测试今天的日期和时间),但在表中未更新。

task scheduler

有蝙蝠文件或我的任务调度任何错误? 谢谢

+0

您正在使用什么数据库?是否想让数据库在1月1日发生时识别,然后自动更新每行的总计字段? – Ben

+0

SQL server 2008 r2 – KaviSuja

+0

你是否想要添加15天,或只是在某个日期范围内?顺便说一下,我认为触发可能是这里的一种方式。 –

回答

3

我认为你可以编写一个SQL服务器代理作业,每年1月1日运行,并根据您的标准更新所需的表。

SQL触发器在这种情况下可能无法帮助,因为触发器在插入/更新/删除操作时起作用。

+0

感谢您的回复。我想与SQL Server Agent Job一起工作。但在我们的服务器中只有快递版本可用(无法运行SQL Server代理作业)..所以如何才能做到这一点 – KaviSuja

+0

hm ..那么你必须编写一个批处理文件并将该批处理文件添加到Windows计划任务。您可以使用** sqlcmd **工具来完成这项工作。我还没有用** sqlcmd **工具进行尝试。你可以参考[链接](https://msdn.microsoft.com/en-us/library/ms162773.aspx) – Venkatesh

+0

好吧,我会参考它并致力于它谢谢 – KaviSuja