【发布时间】:2015-12-05 18:15:41
【问题描述】:
我正在编写一个导入脚本,其想法是将多个工作簿导入到一个表中。我已经取得了进展,所以我能够成功地将一个工作簿导入我的表中。我想要做的是创建一个查询,该查询将循环读取文件名并将数据导入到我在 Microsoft SQL Server Management Studio 中的数据库中。
--Creating the TABLE--
CREATE TABLE BrewinDolphinHoldings
(
recordID INT AUTO_NUMBER
FUNDNAME VARCHAR(25),
SEDOL VARCHAR(7),
ISIN VARCHAR(11),
NAME VARCHAR(20),
WEIGHT INTEGER(3)
)
constraint[pk_recordID]PRIMARYKEY
(
[recordID] ASC
)
INSERT INTO BrewinDolphinHoldings
VALUES
("HoldingsData', GB125451241, DavidsHoldings, 22)
--SELECTING THE SHEET--
SELECT/UPDATE? *
FROM OPENROWSET('Microsoft.JET.OLEDB.4.0',
'Excel 8.0;Database=X:\CC\sql\DEMO\SpreadsheetName + '.xlsx',
'SELECT * FROM [Sheet1$]') AS HoldingsData
所以基本上我的问题是,我想创建一个循环,该循环将读取目录中的文件名,并且每次循环并导入相关电子表格时,导入都会读取该名称?所以,例如:
DECLARE SpreadsheetName as STRING
DECLARE FileExtension as '.xlsx'
FOR EACH ITEM IN DIRECTORY
X=1
Y=MAX
FILENAME THAT LOOP READS = SpreadsheetName
SELECT * FROM
OPENROWSET('Microsoft.JET.OLEDB.12.0',
'Excel 8.0;Database=X:\CC\sql\DEMO\SpreadsheetName + fileExtension.xls
END LOOP
所以,我在想也许是这样的?虽然我不知道循环是否会覆盖我的数据库?也许我应该使用 INSERT 而不是 UPDATE? 我不想使用 SSIS,最好是查询,但如果有人可以推荐我可以研究的任何内容,或者帮助我完成这个循环,这将有很大帮助
我对你们的新想法持开放态度,因此,如果有人可以尝试修复我的代码,或者给我一些导入多个 Excel 工作表的示例,将不胜感激!
我是 SQL Server 的新手,我确实有一些以前的编程经验!
谢谢!
【问题讨论】:
标签: sql-server database excel loops import