sql-server - SSIS - 更改列名的 Excel 到 SQL Server
问题描述
我有一个 Excel 工作表,它根据一年中的年份和当前周更改列名,例如 201901 将是 2019 年的第一周。
每天发送给我们的 Excel 工作表会根据当前日期(最多 6 个月)自动调整列名,因此当前 (31/07/2019) 年和周显示 201931 - 202011:
所以下周的N列将是201932(列基本向左移动)。
我尝试将 Excel 源列更改为 1、2、3、4 等不同的别名,希望将数据导入 SQL Server,然后在 SQL Server 中编写触发器以更改列名,但不起作用由于映射 SSIS 需要。
工作正常,直到列更改为下周。
一个简单的方法是删除表并将文件转储到一个名称相同的新表中,但看不到如何在 SSIS 中设置,因为您需要映射列名(不幸的是,这会改变)。
以下是数据流的外观:
理想情况下,对我来说,这样的事情是完美的:
但不确定如何在 SSIS 中实现此结果?
解决方案
我建议转换数据。目前,您有一个“跨表”格式。
以 (RAG_week; CalenderWeek; Value_of_CalenderWeek) 的形式放置 Excel 数据怎么样?为此,您可以使用在 Excel 文件中填充新工作表的 Excel 宏。(每个单元格在一个数据集中进行转换,单独成为一行。)接下来,您在 SQL Server 上创建一个类似的表。然后,您可以创建一个具有恒定列分配的 SSIS 包,只需每周添加新数据。
这会影响对数据的进一步评估,但似乎是一种更稳定的方法。
推荐阅读
- javascript - 传入路由的 React Shell 组件支持组件
- regex - 在 perl 或 sed 中默认不匹配的反向引用
- python - 有没有办法将数据读入 R 或 Python 并按字符数拆分?
- r - Github Actions - R 包 R-CMD-Check “找不到 PhantomJS”
- asp.net-core - .NET Core Web API 与 ODATA 序列化 DateTime
- linkedin-api - 提取广告分析时,PARAMETER 中存在未经许可的字段
- r - 合并函数给出空数据集结果
- ruby-on-rails - 升级到 Rails 6 和 sqlite3 1.4,不能再查询布尔值
- java - 如何从“20201023T200457Z”和“EEE MMM dd HH:mm:ss zzz yyyy”生成本地化日期时间?
- html - 如何更改引导程序中的默认“导航栏切换器”按钮图标?