重新导入Excel文件到SQL SERVER通过SSIS包
问题描述:
我有一个SSIS项目从Excel文件导入到SQL Server表中的数据。但是这只会将记录追加到我的表中,我需要添加更新表中现有数据的功能,这意味着可以重复导入同一个excel文件太多次。重新导入Excel文件到SQL SERVER通过SSIS包
我怎么能这样做或我在哪里可以得到我的信息 非常欣赏
感谢 埃利安娜
答
一个简单的解决方案是使用临时表和T-SQL MERGE语句。具体方法如下:
- 为会话创建一个临时表(创建表的#mytable(...))
- 导入Excel的内容文件到该临时表
- 使用MERGE语句合并将临时表放入真正的目标表中。
这里是文档,以T-SQL MERGE语句:http://technet.microsoft.com/en-us/library/bb510625.aspx
这个例子说明如何既用MERGE合并:
MERGE RealDestinationTable AS target
USING #mytable AS source
ON (target.Id = source.Id)
WHEN MATCHED THEN
UPDATE SET Name = source.Name
WHEN NOT MATCHED THEN
INSERT (Field1, Field2)
VALUES (source.Field1, source.Field2)
OUTPUT deleted.*, $action, inserted.*
INTO #AnyResultTempTable;
这是好的,但我得到了一个解决方案throught SSIS现在。无论如何感谢 – Eliana 2012-07-26 01:47:21
如果您的解决方案是使用缓慢变化的维度,请知道MERGE语句更快。事实上,它比SSIS中能够达到相同结果的任何事情都快很多。 – 2012-07-26 13:00:59