我在SQL Server中有一个手动过程,我想在Excel VBA中自动化。在MS SQL Server 2014中,任务是将csv文件上载到数据库中的新表。为此,我右键单击我想要的数据库,单击“任务/数据导入”。这将打开SQL Server导入和导出向导。在那里,我选择Flat File Source作为数据源。然后,我选择我想要的csv文件。我勾选复选框,“第一个数据行中的列名称”。我单击下一步,然后在服务器上创建文件。
有没有办法从Excel VBA执行此操作?我确信我可以通过传递CREATE TABLE命令从Excel VBA在SQL中创建表,然后执行BULK INSERT命令,该命令将传递数据。但是,我宁愿避免创建表,因为它涉及指定列的数据类型;当从SQL Server调用该进程时,SQL Server会自动为您执行此操作。我还可以从Excel VBA自动执行此操作吗?
答案 0 :(得分:0)
我能想到的最简单(但可能不是最好的方式):
Excel VBA - How to read csv file line by line but not the whole file
CREATE TABLE
查询。将列定义为[VARCHAR]
。Create a SQL Table from Excel VBA
我已尝试过使用" SQL Server导入和导出向导"我用这种方式创建了一个表。
然后,在选择表并检查"脚本表为" > "创建",我注意到以下命令:
CREATE TABLE [dbo].[Textdokument](
["name1"] [varchar](50) NULL,
["name2"] [varchar](50) NULL,
["name3"] [varchar](50) NULL,
["name4"] [varchar](50) NULL,
[Spalte 4] [varchar](50) NULL
) ON [PRIMARY]
老实说,这不是很优化,只要我有一些列,数字和varchar
相当昂贵"对他们来说。