如何在特定时间调用Mssql中的过程

时间:2017-08-22 06:26:59

标签: sql sql-server sql-server-express sql-server-2014-express

我正在使用SQL server 2014和我希望按计划时间自动运行程序。 我想将数据从一个数据库同步到另一个数据库...

快递计划中的任何选项都可以调用特定程序 ....

2 个答案:

答案 0 :(得分:1)

在SQL Server Express版本中,没有用于调度的SQL代理。您可以使用Windows任务计划程序并使用sqlcmd来执行存储过程

答案 1 :(得分:1)

如果您没有复杂的日程安排需求,但只需要运行一些东西,比如每天在固定时间运行一次,您可以合并一些功能。

您可以创建一个永不结束的存储过程,其主体类似于:

WHILE 1=1
BEGIN
    WAITFOR TIME '22:00'

    EXEC SomeOtherTask /* parameters, etc */
END

您将此过程放在master中,然后在其上调用sp_proc_option将其标记为启动过程。

然后重新启动SQL Server实例,并在指定的时间执行SomeOtherTask

请注意,您不会过度使用此技术 - 它会使连接永久保持等待,只是等待时间过去。更容易(但当然需要付出代价)是升级到功能更全面的版本。您开始做一些导致您痛苦的事情 - 例如作业调度以及内置于更高级别版本中的某种形式的复制。你可能已经超出了Express版本。