在SSIS中映射时如何检查条件?

时间:2011-10-03 13:53:11

标签: ssis

我想创建一个ssis包,它从平面文件中取值并根据companyname将其插入到数据库表中。

例如:

我有表格字段:

Date        SecurityId   SecurityType   EntryPrice Price  CompanyName
2011-08-31  5033048      Bond           1.05       NULL   ABC Corp

现在我想在此表中插入Price,但我需要与CompanyName匹配 并且在文件CompanyName中也是ABC,所以如何检查并仅插入特定数据... 像这样我在我的文件中有20条记录,其中company names不同。

我喜欢这个enter image description here

在查找中我做了enter image description here

现在我的问题是我需要从平面文件中检查公司名称并将该公司价格插入表中,但在平面文件中公司名称如'AK STL'ans表中给出的那样就像'AK STEEL CORPORATION'所以我已经使用了列转换,但是我写的什么表达式找到匹配...与其他公司名称相同只有1英尺2-3个字符在平面文件中请帮助

1 个答案:

答案 0 :(得分:0)

基本上,您希望将数据“Upsert”到数据库中。 Here是一个简单的查找upsert示例。如您所说的数据集中的记录数量少,这种方法就足够了。对于较大的数据集,您可能希望查看使用临时表并使用类似于此的SQL逻辑:

--Insert Portion
INSERT INTO FinalTable
( Colums )
SELECT T.TempColumns
FROM TempTable T
WHERE
(
    SELECT 'Bam'
    FROM FinalTable F
    WHERE F.Key(s) = T.Key(s)
) IS NULL

--Update Portion
UPDATE FinalTable
SET NonKeyColumn(s) = T.TempNonKeyColumn(s)
FROM TempTable T
WHERE FinalTable.Key(s) = T.Key(s)
    AND CHECKSUM(FinalTable.NonKeyColumn(s)) <> CHECKSUM(T.NonKeyColumn(s))