0

我试图强制 SQL Server 每小时调用一个所需的存储过程。

我已阅读以下文章:

它们很大,而且不是很直截了当。

任何人都可以确认以下 SQL 代码是否适合我的任务:

USE msdb ;
GO
EXEC dbo.sp_add_job
    @job_name = N'Exec RemoveOldCsvImportData' ;
GO
EXEC sp_add_jobstep
    @job_name = N'Exec RemoveOldCsvImportData',
    @step_name = N'execute stored procedure',
    @subsystem = N'TSQL',
    @command = N'exec RemoveOldCsvImportData', 
    @retry_attempts = 5,
    @retry_interval = 5 ;
GO
EXEC dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 4,
    @freq_interval = 1,
    @freq_subday_type = 0x8,
    @freq_subday_interval = 1,
    @active_start_time = 233000 ;
USE msdb ;
GO
EXEC sp_attach_schedule
   @job_name = N'Exec RemoveOldCsvImportData',
   @schedule_name = N'RunOnce';
GO
EXEC dbo.sp_add_jobserver
    @job_name = N'Exec RemoveOldCsvImportData';
GO 
4

4 回答 4

4

我的建议是通过向导创建作业,编写脚本,然后将其用于您的脚本。创建一个像你想做的工作是一个神秘的过程。您最终会得到它,但如果这是一次性的,那么向导路线将为您节省大量时间。

于 2012-07-12T10:20:59.990 回答
2

除去中间的假USE msdb ;的,看起来不错,运行成功。为什么不尝试运行它?如果它不是您想要的,您可以随时再次删除该作业。

于 2012-07-12T09:34:27.470 回答
0

您可以从 sql 作业代理生成脚本并以一种方式运行它。另一种方法是使用向导中的窗口任务计划生成任务。为此,请转到我的计算机->右键单击它并选择“管理”选项。它将打开服务器管理器。现在转到配置选项并选择任务计划程序。您可以在操作选项卡中从表单右侧的创建任务选项创建任务。这是从这里产生工作的非常简单的方法。实际上我也为我的项目需求使用了同样的东西。

在那我只创建任务,将在每天 12:00 执行一个存储过程一次。因此,如果不运行该脚本并在脚本中执行所有操作,您也可以执行相同的操作。

于 2012-07-12T10:41:17.400 回答
0

在我的 SQL Server 实例上执行此代码会给我一个时间表'每天在 23:30:00 和 23:59:59 之间每 1 小时发生一次',我认为这不是你想要的。

任何人都可以确认以下 SQL 代码是否适合我的任务

答:不,这是不对的。

就像 Ben Thul 和 David M 在他们的回答中所建议的那样:您可以尝试代码并检查作业以查看它是否符合您的要求,并且通过右键单击和Jobs创建新作业会更好SQL Server Agent选择New Job....

于 2012-07-12T09:35:18.327 回答