2010-12-15 90 views
0

我收到SSIS包的錯誤,我不知道如何解決。我覺得我需要給出一個背景,以瞭解我正在嘗試做什麼來幫助您理解:SSIS錯誤(查找和OLE DB命令)的問題

我正在使用OLE DB源數據庫(SRC DB),並將其輸入輸出到Lookup(DEST D B)。我正在檢查DEST DB中是否存在SRC DB中的字段。在我的情況下,我檢查的字段被稱爲inkexID,它是一個INT NOT NULL,並且是一個複合主鍵和一個ID字段。

查找檢查是否存在於SRC DB中的inkexID存在於DEST DB中。如果它不存在,則將它和其他3個字段插入到DEST DB中,如果它存在,它只會更新DEST DB中的1個字段。

我的問題就出在這裏: 當涉及到的查找,它會檢查inkexID超過2臺,看到的是沒有比賽,但隨後的組件出現故障。它似乎沒有發送任何錯誤輸出(這是調用初始插入OLE DB命令所需的內容)。如果我將錯誤配置設置爲重定向行或忽略失敗,則然後在插入時失敗。它給了我一個關於違反我的數據庫模式的錯誤,即使我試圖插入的字段是12345.

我刪除了該字段作爲主鍵並將其設置爲允許空值,所以當我再次運行它時,我被驚訝地看到它正試圖插入一個空到現場,即使在SRC DB值是12345

似乎有從查找輸出什麼。任何人都可以幫助爲什麼沒有什麼會出現在查找?

大加讚賞, 奇安

回答

0

使用SQL Server Profiler來在服務器上運行的軌跡。

啓動跟蹤,然後執行包。探查器跟蹤將捕獲所有正在發送到數據庫服務器的實際T-SQL命令。然後,您可以將每個命令複製到查詢編輯器窗口中,執行並查看結果集以及查看調整的執行計劃。

0

我已經發現了什麼錯誤是:

我已經建立了SRC DB的inkexID領域查找從DEST DB的inkexID。然而,我卻意外地設置了它,並設置了SRC DB中的列來替換DEST DB中的inkexID。我只是簡單地解決它並簡單地建立關係。

結果!!!它現在檢查inkexID,如果它存在於DEST數據庫中,則只會使用當前時間更新lastUpdated時間,否則將插入正確的inkexID,當前時間爲dateAdded和dateUpdated,statusID爲活動狀態。

耶!