2016-02-04 30 views
0

我正在將數據從txt導入到Sql Server table。這部分工作很好。SSIS中的實現條件

每天此txt文件被刪除,並形成新的txt文件(即昨天有用於2月3日,對於今天2月4日(列Date)數據)。

當我運行包時,我想要它檢查數據庫表中是否存在Date列。如果它存在,跳過,不要導入,如果它不導入。我想將該日期值保存在variable中以供進一步操作。我怎麼能做到這一點?

+0

你能給我們提供關於你的'表'列的更多信息嗎?或你的'文件'? –

+0

@ download download,txt文件有幾列,其中之一是日期。並且數據庫的日期字段的類型爲smalldatetime的列數完全相同。 txt文件只能包含一個日期(2月3日或4月2日等等,不同時間)。你真的希望我提供什麼樣的信息?只是從txt導入值到表格工作正常。我想要的是設置條件,所以當我今天運行包時,它會導入2月4日的所有值,如果我今天第二次運行它,它不會導入任何內容,因爲該數據已經存在於tbl – Sher

+0

什麼是你約會的格式?並且它的數據類型是'datetime'? –

回答

1

我們假設你有格式和數據作爲波紋管

id | product   | dateLoad 
1  | dell   | 25-01-2016 16:23:14 
2  | hp    | 25-01-2016 16:23:15 
3  | lenovo   | 25-01-2016 16:23:16 

和你的目的地的格式源文件爲波紋管

create table stack(id int,product varchar(20),dateLoad smalldatetime); 

在你SSIS添加Derived Columnsmalldatetime轉換到date像這樣:

Convert smalldatetime to Date

其次在添加LookupGeneral標籤您Lookup transformation EditorSpecify how to handle rows with no matching entries和選擇Redirect rows to no match output。在Connection選項卡添加一個連接到目標table,我寫了一個Sql query轉換的smalldatetime to date顯示圖片波紋管:

connection to the target table

Column tab做到這一點: enter image description here

最後補充與連接lookup和您的target table並選擇Lookup no matching output

在第一個exec ution我有3 rows插入,因爲我沒有時間在我的表 First execution

我執行另一個時間,但我不得不0 rows,因爲我有我的table

enter image description here

我希望日期幫助你

+0

謝謝你的詳細解釋。這很有效 – Sher

+0

還有一個問題:我如何在變量中保存日期。我想在發送郵件任務中使用如下主題:「Info for 04/02/2016。預先感謝 – Sher

+1

你想在我的例子中''variable'中的文件中存在的日期是'25-01- 2016'' –