2013-10-11 18 views
0

我必須使用SSIS進行增量提取。我的方案是這樣的: 我需要從我的表中找到datetime的最大值,並將其存儲在我在OLE DB Source的where條件中使用的變量中。我正在使用腳本組件轉換來更新我的變量。問題是在執行時最大值被分配給變量,但是當我嘗試再次執行時,變量被設置爲我提供的默認值。我如何使變量值持久?如何在SSIS中持久化一個變量值?

回答

1

而不是使用腳本組件,你不能先使用執行SQL任務嗎?

在SQL任務中,在常規選項卡中定義連接,然後定義獲取最大日期的SQLStatement。並且您將ResultSet設置爲「單行」。

然後在選項卡ResultSet中將結果映射到您已擁有的變量。

How to assign value to variable with SQL task

+0

我試圖用很好,但如果我在我的源同樣沒有任何新的插入執行包,然後仍然是最後一條記錄被插入我的目標已經被插入。 –

+0

我不知道我關注。根據我的理解,你想從表A中提取到B,在那裏你只會得到A中的行大於B中的最大日期。所以在我的情況下,我會像上面提到的那樣,在B中找到最大日期,然後存儲在變量中,然後從A中提取日期> @maxDate。每次運行時,代碼都應該獲取最大日期。也許我不瞭解整個問題。 – Rupal

+0

其實整個問題都是關於增量提取。我需要根據源文件中的日期列僅從源表中獲取新記錄。 –