[SQL SERVER][SSIS]動態建立 Excel
上一篇介紹過使用程式呼叫 SSIS 並傳遞參數,
但 SSIS 資料流程中的 Excel 目的地是固定的(不符合使用者需求),
所以這篇紀錄如何使用 SSIS 動態建立 Excle 目的地,
符合每天自動排程匯出Excel檔案不會被覆蓋。
新增主要路徑變數
新增 Excel 連接管理員並設定ExcelFilePath Expressions
@[使用者::RootPath]+ (DT_WSTR, 4) DATEPART( "yyyy", GETDATE() )+
(DT_WSTR, 2) DATEPART( "mm", GETDATE() )+
(DT_WSTR, 4) DATEPART( "dd", GETDATE() )+".xls"
Excel檔名預設會依日期建立。
控制流程
編輯執行SQL工作(Create Excel Table)
這裡需使用特別符號 `
資料流程
編輯Excel 目的地
新增Sheet(拿前面剛剛的語法)
create table `test`
(
`sys_value` nvarchar(19),
`sys_name` nvarchar(50),
`mapping_flag` nvarchar(1)
)
選取正確工作表名稱
設定欄位對應
結果
Excel內容
匯出22日Excel
這樣就有每天的Excle檔案內容了。
ps:Excel檔名部分有曾想增加時分秒,
但再設定Excle 欄位對應時就會發生錯誤(找不到Excel工作表),
雖然我有設定Package和Excle連接管理員DelayValidation = true,
但BIDS好像還是會檢查Excle是否有存在,
目前這部份還沒真正想到解決方法,如有知道的朋友請麻煩告知一下。
參考