SQL Server代理作业:如何在不执行整个作业的情况下执行作业步骤

时间:2011-06-20 14:39:44

标签: sql sql-server sql-server-2005 ssis sql-server-agent

我有一个以前有两个步骤的SQL Server代理作业。今天,我必须整合第三步,很快我就需要整合第四步。

我想确保该步骤能够正确执行,但我不想执行整个工作。

前两个步骤需要相当长的时间才能执行,白天他们占用了我用户需要的大量SQL资源。

有没有办法可以执行工作步骤而不是整个工作流程?

在SSMS中,如果我右键单击作业,则会有一个选项,指出“在步骤中启动作业...”,除非我尝试该选项时会显示一个对话框,似乎暗示整个作业已经过开始。如何在工作中测试一步?

提前致谢。

5 个答案:

答案 0 :(得分:15)

“在步骤中启动作业”将在您指定的步骤中启动作业。但是 - 如果您不希望执行任何后续步骤 - 请务必调整步骤逻辑,以便在完成您开始的步骤后“退出报告成功”。

答案 1 :(得分:0)

转到作业属性并手动执行该步骤。例如,有一个包含16个步骤的作业,您希望运行第12步,然后转到该作业属性,看看步骤12到底做了什么。如果它在命令提示符下执行批处理文件,请手动执行。但是这种逻辑不能用于所有情况。

答案 2 :(得分:0)

使用此:

EXEC msdb.dbo.sp_start_job N'job_name' , 'step_name'

答案 3 :(得分:0)

在SSMS中:

  • 复制作业步骤中的代码(使用ctrl + a来全选)
  • 将代码粘贴到SSMS中的新查询窗口中
  • 运行代码

或者,如果您经常需要运行几步。

将这些步骤放在单独的作业中,然后从一个作业开始另一个作业以运行所有内容。使用EXEC msdb.dbo.sp_start_job N'job_name'

您可以按需运行短期轻松工作,而按计划运行完整的长期工作

答案 4 :(得分:-1)

USE [**DB_NAME**]
GO

DECLARE @return_value int

EXEC @return_value = [dbo].[**STEP_NAME**]  

SELECT 'Return Value' = @return_value
GO