2015-10-20 110 views
0

我的SSIS包的主要目標是讀取sql代碼,然後執行。腳本任務將讀取SQL文件中的代碼,然後將代碼傳遞到全局變量中。 SQL任務執行存儲在變量中的代碼。這工作正常,但我使用一個變量來存儲SQL代碼。正因爲如此,我不能並行執行多個步驟 。有沒有辦法可以避免創建多個變量來存儲SQL代碼?局部變量是否會起作用,如果是這樣,怎麼辦? enter image description hereSSIS - 局部變量

+0

不,如果您希望它們同時運行,那麼需要將兩個SQL腳本存儲在不同的內存中。 – saarrrr

+0

如何通過名稱將SQL語句分配給SQL任務? I.E.使用「腳本」將SQL語句分配給「SQL任務」和「SQL任務1」。在我的腳本中,我將按名稱指定sql任務,併爲其分配sql語句。我認爲DTS 2000有這樣的東西。 – SSISUser

+0

我想你在談論使用變量的表達式。所以如果你想讓它們同時運行,你需要將SQL存儲在不同的內存中。爲什麼你反對創建2個變量而不是1個? – saarrrr

回答

0

我會創建一個包(稱之爲X)只是做一個:

script -> sql task 

在X,定義你需要傳遞從呼叫者包X,如果需要一些包的參數。例如,表名?並將其注入到動態SQL中。 否則,將它們定義爲變量。

然後創建一個調用多個X包的主包。然後你可以並行運行它們。

由於子包無法將值返回到主包(如果需要),因此必須設計其他方法將值傳遞迴主包。例如,通過更新表中的值。主包等待X完成,因此主包可以在之後執行更多任務。