我有一个SQL代理作业。该作业的第一步是运行SSIS包,将.txt文件中的数据加载到SQL表中。作业中的后续步骤操作刚刚加载到表中的数据,直到最终使用结果刷新excel中的表。 我遇到的问题是,在进入作业的第2步之前,似乎作业不等待SSIS包完成,所以有时它工作正常,有时它会在数据加载到表之前启动数据操作并给出不正确的结果。在继续之前,如何让作业等待SSIS包完成?
答案 0 :(得分:0)
您是否在SQL Server 2012中运行此功能?有一个名为SYNCHRONIZED的IS目录包的特定参数,如果设置为false,则在程序包启动时认为包执行步骤成功。
要查看作业正在执行的各种命令,请在运行作业的服务器上运行此查询:
select step_id, step_name, subsystem, command from msdb.dbo.sysjobsteps js
inner join
msdb.dbo.sysjobs j
on j.job_id = js.job_id
where
j.name = <Your Job Name Here>
order by step_id
如果你没看到
/Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True
在命令字段中,这意味着它以异步方式运行,下一步将在程序包开始执行后立即启动。
我知道修复它的唯一方法是直接在dbo.sysjobsteps表中修改作业步骤的命令字段,使用sp_update_jobstep存储过程,或者使用GUI删除并重新添加步骤。