2013-02-27 49 views
1

我從excel導入數據到sql server數據庫。在導入過程中,我必須驗證日期列。驗證和校正邏輯已經在sql server udf中建立。如果我將日期和其他列的其他列傳遞給udf,它會給我一個有效的日期。SSIS - 使用sql或udf驗證列

udf中的邏輯非常複雜,我不想在SSIS中再次維護它。 UDF不只是做一個查詢。不僅如此。

有什麼辦法讓我使用sql或udf epxressions來派生新的列?

由於提前, rkgSSIS

回答

1

你要找的組件是OLE DB Command Transformation。對於通過組件的每一行,它都會使用您提供的任何內容調用數據庫。

在你的情況,你會看像

SELECT dbo.MyUdf(?, ?, ?) AS IsGood 

,你會被他們0基於序位線了各列的?

+0

用Excel數據填充臨時表,然後針對不同數據流任務中的臨時數據運行UDF,與「OLE DB命令」相比性能會更好嗎? – 2013-02-27 19:41:06

+0

@siva這可能會引起一個有趣的博客文章,但我認爲由於標量UDF的逐行本質,用戶已經遭受了痛苦。我不認爲通過調用10k次而不是通過一次傳球評估10k次來增加這種痛苦會使性能發揮作用。 – billinkc 2013-02-27 20:06:35

+2

@billinkc在這種情況下使用OLE DB命令將意味着額外的10k網絡跳數。 **那**會是性能殺手。 – 2013-02-27 20:13:19