【发布时间】:2021-09-27 16:20:31
【问题描述】:
我有一个 excel 文件,它有一列,列中的数据是:
INSERT INTO dbo.Test (Id1, Id2, Id3)
VALUES (1, 2, 3)
有人可以告诉我如何通过 SSIS 自动执行此操作,以便插入语句直接将数据加载到表中吗?
我可以创建一个 SSIS 包来将此 excel 文件加载到表中,但是我需要该列来执行并将数据插入到测试表中。
任何建议都会有所帮助。
谢谢
【问题讨论】:
-
您不应该在列中存储 SQL 脚本,而应该只存储值。在这种情况下,单元格 A1:C1 的值应分别为
ID1、ID2和ID3,单元格 A2:C2 的值应分别为1、2和3。然后使用 Excel 源导入数据是微不足道的。 -
为什么要把事情复杂化?如果你的“脚本”(那个单一的插入语句)就是你所拥有的,只需将它放在脚本文件中,你可以随时使用各种工具对任何数据库运行它。这似乎是XY problem。
-
如果您想自动化 SQL 脚本,powershell 是执行此类任务的流行工具;从 Excel 加载数据很容易,但它应该只是数据,如果有人编辑了 excel 文件并将单元格的内容更改为“drop table....”或更糟,会发生什么?跨度>
-
将问题重述为是否准确:在 SSIS 包的上下文中,我需要将 Excel 文件中的特定单元格作为字符串读取。然后我需要使用该字符串作为对数据库的查询?
-
有很多不同的方法可以实现这一点,但是,您认为让一些 Excel 用户传递查询以盲目地在生产服务器上运行是个好主意吗?
标签: sql-server ssis