我正在使用SSIS包将excel数据导出到sqlserver数据库。我成功了,我能够将数据插入到sqlserver表中。为此,我使用了以下步骤。 1.添加了Excel源代码 2.数据转换层 3. OLEDB目的地
当我运行包时,我能够插入数据。现在我的要求是,如果在excel中进行了任何更改,并且当我们重新运行SSIS包时,数据库必须更新而不是因为主键而导致插入错误。我厌倦了以下方式, 在OLEDB目标配置中,我从下拉列表中选择了sqlcommand选项而不是Table视图,并在命令框中添加了以下查询
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 erroe“),”。 任何建议都是受欢迎的!.. 谢谢 桑吉塔 'SELECT * FROM [Project $]')
答案 0 :(得分:0)
我认为您应该使用预加载表,其中每次启动etl时,它将首先被截断(使用sql taks),然后填充excel数据。之后添加另一个sql taks并使用EndDate列编写合并语句(插入/更新)。