我正在寻找一种策略来处理以下 Excel 到 db 问题(SQL Server 2012):
输入将是同一主题的 Excel 文件,但这些 Excel 文件中的列设置可能会逐月更改,这意味着将在这些 Excel 文件中删除或添加列,这不是维护数据库的“最佳”方案-表结构。
请注意,当 Excel 文件更改时,文件名/ID 也会更改。
因此,为了将这些文件(通过SSIS)存储在一个单独的数据库表中,我将使用列名 COL1 到 COLn设置一个“通用”结构。然后,我将向每个 Excel 文件添加一个版本字段,以便创建某种映射表,在其中根据版本定义正确的列名。基本上新的一个月会创建一个新的版本号。这应该可以帮助我创建一个视图来提取具有适当列名的所有版本。
在第一个版本中,我有大约 120 列要处理。
我还有一个“ crosstable -scenario”,因为有些列包含年份值。例如,假设输入文件包含 Savings 2009、Savings 2010、Savings 2011 列。如果在版本 2 中添加了 Savings 2012 列,我将需要在 db 表中创建另一个列,除非删除“Savings 2009”并将 2010 的值添加到“2009 列”。
你看这是一团糟!
使用这种结构,我将始终不得不更改导入工作流程并调整名称映射,但我想不出更好的方法来处理这个问题。
我需要将列拆分到不同的表吗?
我希望我的问题得到解决,并且您可以指导我找到一个干净、“无忧”的解决方案 :-)
正如您可能已经猜到的那样,我对需要处理的输入文件没有太大影响。
谢谢你。