在數據流任務中,我可以將行數計入處理流中,並將計數存入變量。如果rowcount大於0,我可以稍後使用該變量來有條件地執行一些其他工作。這對我來說很好,但對於預期會返回單行的sql任務,我沒有相應的策略。在那種情況下,我將這些值返回到變量中。如果查找不產生行,那麼在將值分配給這些變量時,sql任務會失敗。我可以在該組件失敗的情況下進行分支,但是這會產生副作用 - 如果將作業作爲SQL Server代理作業步驟運行,則該步驟將返回DTSER_FAILURE,導致該步驟失敗。我可以告訴sql代理忽略步驟失敗,但是我不知道在這一步中是否有合法的錯誤。這似乎比它應該更難。如何應對SSIS 2005中返回單行的SQL任務中的空結果?
我能想到的唯一策略是使用count(*)聚合運行相同的查詢,並測試返回的數字是否大於0,如果是,則再次運行查詢而不計數。這很醜陋,因爲我在兩個地方有相同的查詢,我需要保持同步。
有沒有更好的方法?