創建一個將在我們的不同環境(DEV,UAT,PROD)中循環遍歷所有服務器的程序包。我們使用服務帳戶,DEV和UAT有一個服務帳戶,另一個服務帳戶用於PROD。我正在使用ForEach循環容器/變量來設置連接字符串。SSIS通過服務器循環並處理登錄失敗
問題:當環路中的數據流嘗試連接到PROD服務器時,它們會失敗,因爲它們使用明顯無法訪問PROD的DEV/UAT服務帳戶,這很好。問題是這會殺死循環。通常,我只是在數據流上放置一個事件處理程序,並設置事件處理程序的系統變量傳播:OnError = False,以便錯誤不會回滾到循環並殺死它。那麼這是行不通的,因爲數據流中的OLE DB連接在驗證期間(包運行時)失敗,顯然Propagate = False設置只會在執行任務期間發生冒泡錯誤,而不會發生錯誤驗證任務。
我可以在包括軟件包本身的所有設置上設置MaximumErrorCount = 0,但這有點沉重,並且無論遇到什麼錯誤,軟件包總是會報告它成功運行。
運行SQL Server 2008的R2
Link就怎麼殺不使用傳播,如果有人不熟悉它設置你的循環的文章。
我以爲一個腳本任務可能能夠提供我正在尋找的解決方案。非常感謝你。 – swegs 2013-03-11 15:06:23