【问题标题】:Export excel into sqlserver using SSIS使用SSIS将excel导出到sql server
【发布时间】: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 转换,如果匹配则SplitProject End Date 进行转换,以查看列是否已更改。如果更改使用@ 987654330@更新。查看此链接consultingblogs.emc.com/jamiethomson/archive/2006/09/12/…

标签: excel ssis sql-server-2012


【解决方案1】:

我认为你应该使用预加载表,每次启动 etl 时,它都会先被截断(使用 sql taks),然后填充 excel 数据。之后添加另一个 sql 任务并使用 EndDate 列编写合并语句(插入/更新)。

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多