将excel表中的数据插入sql临时表



我在SQLServerManagementStudio中创建了以下临时表:

CREATE TABLE ##LoginMap
(
ObjectId NVARCHAR(50), 
UserPrincipleName NVARCHAR(500), 
Username NVARCHAR(250),
Email NVARCHAR(500), 
Name NVARCHAR(250)
)

这些名称与我试图从中获取数据的excel工作表中的列标题相同。

文件名称为Test Loadsheet,图纸名为AgilityExport_04Aug2022_164839

我正试图将数据插入临时表中,如下所示:

INSERT INTO ##LoginMap
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=C:tempTest LoadSheet.xlsx', [AgilityExport_04Aug2022_164839]);
GO

然而,我得到了错误:

OLE DB访问接口"Microsoft.ACE.OLEDB.12.0";对于链接服务器";(null(";不包含表";AgilityExport_04Aug2022_164839";。该表不存在,或者当前用户没有访问该表的权限。

我哪里出了问题?我需要做些什么才能成功地将每一列的数据放入我的表中?

您在一个位置的文件名为Test Loadsheet,但在查询中,它的名称为Test Loadsheet.xlsx。试着看看这是否会阻碍它。

如果你感兴趣,找到了一个从excel导入数据到SQL的链接:

https://learn.microsoft.com/en-us/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-ver16#打开行集

我采取了不同的方式。在excel表格中,我使用了一个这样的公式:

="INSERT INTO ##LoginMap(ObjectId, DisplayName, AzureEmail, AzureUsername) VALUES('"&A2&"', '"&B2&"', '"&C2&"',  '"&D2&"');"

然后我让每一排都重复这个。然后,这给了我一个插入语句,我可以简单地将其复制并粘贴到SSMS中,并允许运行查询

最新更新