2013-05-14 24 views
0

我有一個SQL代理作業。這項工作的第一步是運行一個SSIS包,該包將數據從.txt文件加載到SQL表中。作業中的下一步操作剛剛加載到表中的數據,直到最終以excel結果刷新表格。 我遇到的問題是,似乎作業並沒有等待SSIS包完成,然後才轉到作業的第2步,因此有時它可以正常工作,有時它會在數據加載到作業之前開始數據處理表並給出不正確的結果。在繼續之前,如何才能完成SSIS包的等待工作?如何等待SSIS包完成

+0

你爲什麼不在SSIS包內執行數據操作和加載到excel中的任何原因? – 2013-05-14 14:13:37

+0

那麼,實際發生的事情是用戶點擊Excel中的一個按鈕,它將表格保存爲一個文本文件,觸發一個存儲過程,觸發加載到txt文件中的作業......完成後,它會選擇一個不同的選項卡excel並刷新現有的查詢。我不確定如何處理SSIS包中的excel控件。我之前從訪問完成了它,但從來沒有SQL。 – PopeScooby 2013-05-14 14:17:46

+1

我個人會在SSIS pacakge中做所有這些。但是在一份工作中,您需要邁出成功的第一步。 – HLGEM 2013-05-14 14:26:56

回答

0

你在SQL Server 2012中運行這個嗎? IS Catalog軟件包有一個名爲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刪除並重新添加步驟。