2016-05-30 55 views
0

我需要將所有SQL查詢存儲在一個文件夾下,並引用SSIS包以更好地組織我正在使用的SQL文件的列表,以便稍後可以輕鬆更改SQL文件不得不重建包裹。這將包括我用於「執行SQL任務」的所有查詢以及「數據流組件」下的「OLE DB數據源」中的查詢。SSIS數據流任務中的動態SQL腳本路徑

在數據流任務,而不是把源數據庫的SQL查詢到查詢窗口: 我看到在數據訪問模式四個選項OLE DB數據源 - 1.表或視圖 2的表視圖名變量 3. SQL命令 4. SQL命令從變量

我明白我可以使用一個變量,查詢儲存在變量和「執行SQL任務」是指,但我正在尋找一種方式來將所有查詢存儲在SQL文件中,並將其存儲在數據流組件以及「執行SQL腳本任務」中。我似乎無法找到在數據流任務中使其動態化的方法。任何人都可以幫忙嗎?

回答

0

我不認爲將它們存儲爲sql文件對任何類型的場景都有好處。 這是我會做什麼給你所描述的。

您可以將查詢作爲varchar存儲在數據庫的表中而不是作爲文件。然後,可以對結果集進行foreach循環,並將每行映射到變量,然後將該變量用作數據流中oledb數據源的查詢。

因此,創建一個變量,併爲每個循環遍歷「從dbo.queries中選擇查詢」或之後進行循環。將輸出設置爲您創建的變量並在容器中創建數據流,並將源任務設置爲表達式或使用「變量中的SQL命令」設置。

至於控制流查詢爲什麼不只是讓他們存儲過程,你可以改變,當你需要?

+0

謝謝大衛。我的意圖是簡化執行過程,所以如果我需要更改SQL查詢,我可以在不編輯軟件包的情況下更改SQL腳本。你所提供的工作看起來實施起來有點複雜。沒有簡單的方法將SQL腳本從文件連接到OLEDB源組件,而不是將它放入變量或查詢窗口中? – Narender

+0

我可以想到很多方法可以做到這一點,SSIS只是開銷。爲什麼不用powershell運行它們呢?如果你想SSIS爲什麼不循環遍歷這些文件並將它們的內容添加到sql命令變量中? –