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