我有一份 SQL 代理工作。作业的第一步是运行一个 SSIS 包,将 .txt 文件中的数据加载到 SQL 表中。作业中的下一步操作刚刚加载到表中的数据,直到最终用结果刷新 Excel 中的表。我遇到的问题是,在进入工作的第 2 步之前,该工作似乎没有等待 SSIS 包完成,所以有时它工作正常,有时它在数据加载到表之前开始数据操作并给出不正确的结果。在继续之前,我怎样才能让工作等待 SSIS 包完成?
问问题
3331 次
1 回答
0
您是否在 SQL Server 2012 中运行它?IS 目录包有一个特定参数,称为 SYNCHRONIZED,如果设置为 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 删除并重新添加您的步骤。
于 2014-05-06T21:54:37.497 回答