【发布时间】:2012-01-10 22:13:23
【问题描述】:
我在 Excel 工作簿中有 8 个工作表,我想将它们导入到 SQL Server DB 中的单独表中。
我想将 8 个工作表中的每一个都导入到一个单独的表中,理想情况下,表名与工作表选项卡名称一致,但最初,我只想将数据放入表中,因此任意表名适用于暂时也是。
每个工作表(以及扩展的表格)中的数据格式是相同的(并且将是相同的),所以我认为可以使用某种循环来执行此操作。
数据如下所示:
Universe Date Symbol Shares MktValue Currency
SMALLCAP 6/30/2011 000360206 27763 606361.92 USD
SMALLCAP 6/30/2011 000361105 99643 2699407.52 USD
SMALLCAP 6/30/2011 00081T108 103305 810926.73 USD
SMALLCAP 6/30/2011 000957100 57374 1339094.76 USD
SQL 中的表格格式将/应该与以下内容保持一致:
CREATE TABLE dbo.[market1] (
[Universe_ID] char(20),
[AsOfDate] smalldatetime,
[Symbol] nvarchar(20),
[Shares] decimal(20,0),
[MktValue] decimal(20,2),
[Currency] char(3)
)
我愿意使用 SQL/VBA/C++ 或某种组合来执行此操作(因为这些是我知道并可以使用的语言)。关于如何最好地解决这个问题有什么想法吗?
【问题讨论】:
-
这是您要按计划运行的作业还是一次性导入?你可以使用 DTS 或 SSIS 吗?
-
检查 Sql Server 的批量导入功能。您可以将您的 excel 保存为 csv,然后将其导入。
-
@Robert - 假设一次。将其设置为按计划运行(通过 Windows 调度程序)是次要的。什么是 DTS 和 SSIS?
-
@SebastianPiu - 我计划使用 BULK INSERT 作为其中的一部分。它是否允许在多张纸上导入?
-
@Chris - 我想我应该问一下您是否有企业管理器和安全性来直接加载数据库?还是您只有开发者用户名和密码,所以您必须使用应用程序来完成?
标签: c++ sql sql-server excel vba