0

我正在使用 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 错误“)”。欢迎任何建议!.. 谢谢 Sangita 'SELECT * FROM [Project$]')

4

1 回答 1

0

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

于 2013-04-08T15:13:20.280 回答