2009-07-20 7 views
0

Ich muss alle Werte in einer Excel-Datei zu einer temporären/physischen Tabelle in SQL Server 2005 nehmen. Ich brauche nicht die Import-Exportmethode. Ich versuchte, die folgende verknüpften Server-Methode:Exportieren von Excel auf SQL-Server Temporäre Tabelle

SELECT * 
INTO db1.dbo.table1 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\renju.xls', 
    'SELECT * FROM [sheet1$]') 

aber es ist ein Fehler als returing:

OLE DB Provider "Microsoft.ACE.OLEDB.12.0" für den Verbindungsserver "(null)" zurück Meldung " Installierbares ISAM konnte nicht gefunden werden. ".

Ich verwende Excel 2003, und ich habe bereits den Verbindungsserver für "Microsoft.Jet.OLEDB.4.0" hinzugefügt.

+0

Renju bitte registrieren Sie sich. Antworten als Kommentare zu jemand anderem zu verwenden, ist nicht die beste Idee und macht es wirklich schwierig. Das ist kein gewöhnliches Forum, das ist Q/A. – MadBoy

Antwort

0

Wenn Sie einen Verbindungsserver einrichten können Sie die folgende Syntax verwenden:

select * from openquery(LinkedServerName, 'select * from [Sheet1$]') 
0

Ich denke tabelle1 sollte nicht bereits erstellt werden, damit dies funktioniert, und tabelle1 die gleichen Spalten wie die Excel-Tabelle haben . Ist es das was du willst?

können Sie versuchen, OpenDataSource zu verwenden, wenn dies nicht behoben wurde. Es wird ein bisschen langsamer als OpenRowset in der Leistung sein:

INSERT INTO db1.dbo.table1 
     SELECT * 
     FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
          'Data Source="c:\renju.xls"; 
          Extended properties=Excel 8.0')...Sheet1$ 

Sie auch Eigenschaften Erweiterte versuchen = Excel 5.0, wenn es nicht funktioniert.

Verwandte Themen