如何在调度程序的基础上自动运行存储过程?

时间:2012-08-28 11:19:30

标签: sql-server

我想每晚自动执行存储过程。我该怎么做。请指导我实现这一目标的步骤。

提前致谢。

3 个答案:

答案 0 :(得分:14)

您可以使用SQL Server代理创建作业。

enter image description here

右键单击Jobs文件夹以打开菜单,选择New Job:

enter image description here

创建新作业时,将打开一个窗口,您将提供要创建的作业的详细信息。包括:

  • 名称 - 在“常规”标签中
  • 步骤 - 可以运行SQL脚本,SSIS包,存储过程
  • 时间表 - 以您选择的频率重复出现,每周,每天等。

这是Step by Step by Guide to creating a SQL Job

答案 1 :(得分:4)

试试这个:

CREATE PROCEDURE MyTask
 AS
BEGIN  
    SET NOCOUNT ON;
    --  For executing the stored procedure at 11:00 P.M
    declare @delayTime nvarchar(50)
    set @delayTime = '23:00'

    while 1 = 1
    begin
        waitfor time @delayTime 
        begin
            --Name for the stored proceduce you want to call on regular bases
            execute [DatabaseName].[dbo].[StoredProcedureName];
        end
    end
END

然后,

-- Sets stored procedure for automatic execution.
sp_procoption    @ProcName = 'MyTask',
                @OptionName = 'startup',
                @OptionValue = 'on'

参考:

sp_procoption (Transact-SQL)

设置或清除存储过程以自动执行。每次启动SQL Server实例时,都会运行设置为自动执行的存储过程。

WaitFor

阻止执行批处理,存储过程或事务,直到达到指定的时间或时间间隔,或者指定的语句修改或返回至少一行。

答案 2 :(得分:0)

快速解决方案是,

创建存储过程 编写SQL作业(以下是步骤)

http://www.dailycoding.com/Posts/step_by_step_guide_to_add_a_sql_job_in_sql_server_2005.aspx

在步骤5中配置您创建的存储过程。