我有一个以前有两个步骤的SQL Server代理作业。今天,我必须整合第三步,很快我就需要整合第四步。
我想确保该步骤能够正确执行,但我不想执行整个工作。
前两个步骤需要相当长的时间才能执行,白天他们占用了我用户需要的大量SQL资源。
有没有办法可以执行工作步骤而不是整个工作流程?
在SSMS中,如果我右键单击作业,则会有一个选项,指出“在步骤中启动作业...”,除非我尝试该选项时会显示一个对话框,似乎暗示整个作业已经过开始。如何在工作中测试一步?
提前致谢。
答案 0 :(得分:15)
“在步骤中启动作业”将在您指定的步骤中启动作业。但是 - 如果您不希望执行任何后续步骤 - 请务必调整步骤逻辑,以便在完成您开始的步骤后“退出报告成功”。
答案 1 :(得分:0)
转到作业属性并手动执行该步骤。例如,有一个包含16个步骤的作业,您希望运行第12步,然后转到该作业属性,看看步骤12到底做了什么。如果它在命令提示符下执行批处理文件,请手动执行。但是这种逻辑不能用于所有情况。
答案 2 :(得分:0)
使用此:
EXEC msdb.dbo.sp_start_job N'job_name' , 'step_name'
答案 3 :(得分:0)
在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