2010-06-11 121 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權限。

服務器還需要有你指定的任何提供者。

您是否看到特定錯誤?