2010-06-11 143 views
0

我该如何使用Microsoft.ACE.OLEDB.12.0来做到这一点?如何使用sql查询从Excel中填充SQL Server表?

CREATE TABLE [dbo].[Addresses_Temp] ( 
    [FirstName] VARCHAR(20), 
    [LastName] VARCHAR(20), 
    [Address]  VARCHAR(50), 
    [City]  VARCHAR(30), 
    [State]  VARCHAR(2), 
    [ZIP]   VARCHAR(10) 
) 
GO 

INSERT INTO [dbo].[Address_Temp] ([FirstName], [LastName], [Address], [City], [State], [ZIP]) 
SELECT [FirstName], [LastName], [Address], [City], [State], [ZIP] 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
       'Excel 12.0;Database=C:\Source\Addresses.xlsx;IMEX=1', 
       'SELECT * FROM [Sayfa1$]') 

我该怎么做?

+0

你是否试图直接从sqlserver做到这一点? – Gratzy 2010-06-11 15:06:28

回答

1

如果服务器可以看到文件(并且路径相对于服务器),该技术可以工作。此外,如果它位于共享位置(或本地)上,则当它试图打开文件时,服务器所在的帐户需要具有足够的share/directory/file权限。

服务器还需要有你指定的任何提供者。

您是否看到特定错误?