【发布时间】:2013-04-01 06:33:01
【问题描述】:
我正在使用 SSIS 包将 excel 数据导出到 sqlserver 数据库。我成功了,我能够将数据插入到 sqlserver 表中。为此,我使用了以下步骤。 1.新增Excel源码 2.数据转换层 3. OLEDB 目的地
当我运行包时,我能够插入数据。现在我的要求是,如果在 excel 中完成了任何更改,并且当我们重新运行 SSIS 包时,必须更新数据库而不是尝试插入,因为它会因为主键而出错。我已经厌倦了以下方式, 在 OLEDB 目标配置中,我从下拉列表中选择了 sqlcommand 选项而不是表视图,并在命令框中添加了以下查询
Insert into unicode(ID
,Description
,Start_Date
,End_Date
,Start_of_week
,Is_Shift_allowed
,Any_other_info) Select ID
,Description
,Start_Date
,End_Date
,Start_of_week
,Is_Shift_allowed
,Any_other_info FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0;Data Source=D:\Files\backup\MasterList.xls;Extended Properties=EXCEL 8.0;HDR=YES','SELECT * FROM [Project$]')
当我单击解析查询时,它显示异常为 sysnatx 错误“)”。 欢迎任何建议!.. 谢谢 桑吉塔 'SELECT * FROM [Project$]')
【问题讨论】:
-
您在
Excel中进行了什么样的更改?如果metadata更改为excel,那么您的方法可能不起作用 -
excel中的一列是项目结束日期。如果结束日期更改,则必须使用项目 ID 在 sql 数据库中更新数据。
-
您可以对
Project id使用Lookup转换,如果匹配则Split对Project End Date进行转换,以查看列是否已更改。如果更改使用@ 987654330@更新。查看此链接consultingblogs.emc.com/jamiethomson/archive/2006/09/12/…
标签: excel ssis sql-server-2012