19

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

我想确保该步骤将正确执行,但我不想执行整个作业。

前两个步骤需要相当多的时间来执行,并且在白天它们占用了我的用户需要的大量 SQL 资源。

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

在 SSMS 中,如果我右键单击该作业,则会有一个选项显示“在步骤中启动作业...”,除非当我尝试该选项时,它会弹出一个对话框,似乎暗示整个作业已开始。我可以做些什么来测试工作中的一个步骤?

提前致谢。

4

5 回答 5

19

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

于 2011-06-20T16:23:06.950 回答
3

在 SSMS 中:

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

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

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

您可以按需运行简短的简单作业,并按计划运行完整的长时间作业

于 2019-10-31T18:03:56.137 回答
2

用这个:

EXEC msdb.dbo.sp_start_job N'job_name' , 'step_name'
于 2017-08-29T15:43:14.690 回答
-1
USE [**DB_NAME**]
GO

DECLARE @return_value int

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

SELECT 'Return Value' = @return_value
GO
于 2021-05-26T21:06:25.523 回答
-1

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

于 2017-04-24T09:51:38.117 回答