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

SQL Server代理作业:如何在不执行整个作业的情况下执行作业步骤,sql,sql-server,sql-server-2005,ssis,sql-server-agent,Sql,Sql Server,Sql Server 2005,Ssis,Sql Server Agent,我有一个SQL Server代理作业,以前有两个步骤。今天,我必须集成第三步,很快我需要集成第四步 我想确保该步骤将正确执行,但我不想执行整个作业 前两个步骤需要相当长的时间来执行,而且在一天中,它们占用了我的用户所需的大量SQL资源 是否有一种方法可以执行作业步骤而不是整个作业过程 在SSMS中,如果我右键单击作业,则会出现一个选项,该选项的状态为“在步骤开始作业…”,但当我尝试该选项时,会出现一个对话框,该对话框似乎暗示整个作业已开始。如何测试作业中的一个步骤 提前感谢。在步骤开始作业”将在

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

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

前两个步骤需要相当长的时间来执行,而且在一天中,它们占用了我的用户所需的大量SQL资源

是否有一种方法可以执行作业步骤而不是整个作业过程

在SSMS中,如果我右键单击作业,则会出现一个选项,该选项的状态为“在步骤开始作业…”,但当我尝试该选项时,会出现一个对话框,该对话框似乎暗示整个作业已开始。如何测试作业中的一个步骤


提前感谢。

在步骤开始作业”将在您指定的步骤开始作业。但是,如果您不希望执行任何后续步骤,请确保调整步骤逻辑,使其在完成从开始的步骤后“退出报告成功”。

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

使用这种逻辑:

EXEC msdb.dbo.sp_start_job N'job_name' , 'step_name'
在SSMS中:

  • 从作业步骤复制代码(使用ctrl+a选择全部)
  • 将代码粘贴到SSMS中的新查询窗口中
  • 运行代码
或者,如果您经常需要只运行几个步骤

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


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

好的,我现在知道它是如何工作的了。我以前用过这种方法,回忆起当时有点困惑。正如我所提到的,我的第一步需要耗费大量资源,所以我不想尝试。感谢您的澄清。这不仅仅是运行一个给定的步骤,而且与通过GUI一样,它在一个给定的步骤启动作业,并且子顺序将遵循作业正常流程,因此除非您运行最后一个步骤,否则如果不更改逻辑,它可以运行作业中的所有步骤,具体取决于您启动的步骤此外,此代码不正确。正确的代码应该是:EXEC msdb.dbo.sp_start_job N'job_name',@step_name='step_name'这不会运行,
@generarEncabezado
尚未声明。嗨,Cosi,要从其他成员那里获得关于您的问题的更有效帮助,请编辑您的问题并添加更多细节,因为代码无法满足您的需要。欢迎来到StackOverflow:)
USE [**DB_NAME**]
GO

DECLARE @return_value int

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

SELECT 'Return Value' = @return_value
GO