Daten aus Excel-Dateien in SQL Server zu importieren, sollte eigentlich eine einfache Aufgabe sein. Doch die Realität sieht oft anders aus, besonders wenn es um das Format “Excel 12.0” geht. Viele Nutzer, die Daten aus Excel-Dateien extrahieren möchten, stoßen auf unerwartete Schwierigkeiten, insbesondere mit neueren Versionen von SQL Server und Office.
Hier ist ein Beispiel, wie es aussehen kann:
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.16.0',
'Excel 12.0 Xml; HDR=NO; IMEX=1; Database=C:1FinancialSample.xlsx',
[Sheet1$]);
Ein regulärer Benutzer erhält dann oft Fehlermeldungen wie:
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.ACE.OLEDB.16.0" for linked server "(null)" reported an error. Access denied.
Msg 7301, Level 16, State 2, Line 1
Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "Microsoft.ACE.OLEDB.16.0" for linked server "(null)".
Selbst mit SA-Rechten können Probleme auftreten:
Msg 7302, Level 16, State 1, Line 15
Cannot create an instance of OLE DB provider "Microsoft.ACE.OLEDB.16.0" for linked server "(null)".
Die Aktivierung erweiterter Optionen und die Konfiguration von “Ad Hoc Distributed Queries” scheinen oft nicht ausreichend zu sein:
EXEC sp_configure 'Show Advanced Options', 1
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE
GO
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.16.0', N'AllowInProcess', 1
GO
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.16.0', N'DynamicParameters', 1
GO
Das Endergebnis kann dann frustrierend sein:
OLE DB provider "Microsoft.ACE.OLEDB.16.0" for linked server "(null)"
returned message "External table is not in the expected format.".
Msg 7303, Level 16, State 1, Line 12
Cannot initialize the data source object of OLE DB provider
"Microsoft.ACE.OLEDB.16.0" for linked server "(null)".
Completion time: 2025-03-10T05:53:03.9419478-07:00
Die Odyssee des Datenimports
Früher, etwa um 2012 mit SQL Server 2008, reichten oft die ersten Befehle aus, um Daten erfolgreich zu importieren. Aber mit jeder neuen Hauptversion von SQL Server und Office scheint der Prozess komplizierter zu werden.
Microsoft-Produkte im Clinch?
Es ist fast ironisch: Microsofts eigenes Betriebssystem, SQL Server, Excel und sogar eine Beispieldatei scheinen nicht reibungslos zusammenarbeiten zu können. Das Format “Excel 12.0”, welches im Zusammenhang mit dem OLE DB Provider “Microsoft.ACE.OLEDB.16.0” verwendet wird, stellt hierbei oft eine besondere Herausforderung dar.
Mögliche Ursachen und Lösungsansätze
Die Ursachen für diese Probleme können vielfältig sein:
- Fehlende oder inkompatible Treiber: Stellen Sie sicher, dass der richtige OLE DB-Treiber (Microsoft Access Database Engine) installiert ist und mit Ihrer SQL Server-Version kompatibel ist.
- Berechtigungsprobleme: Überprüfen Sie die Berechtigungen des SQL Server-Dienstkontos auf die Excel-Datei und den Ordner, in dem sie gespeichert ist.
- Konfigurationsfehler: Stellen Sie sicher, dass die “Ad Hoc Distributed Queries” Option aktiviert ist und die OLE DB-Provider-Einstellungen korrekt sind.
- Korrupte Excel-Datei: Manchmal kann die Excel-Datei selbst beschädigt sein. Versuchen Sie, die Datei in Excel zu öffnen und neu zu speichern.
Excel Import Probleme Ursachen
Alternativen zum direkten Import
Wenn der direkte Import über OPENROWSET
oder OPENDATASOURCE
weiterhin fehlschlägt, gibt es alternative Methoden:
- SQL Server Integration Services (SSIS): SSIS bietet eine robuste und flexible Möglichkeit, Daten aus Excel-Dateien zu importieren.
- Import über eine CSV-Datei: Speichern Sie die Excel-Datei als CSV-Datei und importieren Sie diese dann in SQL Server.
- Power Query in Excel: Verwenden Sie Power Query in Excel, um die Daten zu transformieren und dann in eine SQL Server-Datenbank zu laden.
- Drittanbieter-Tools: Es gibt zahlreiche Drittanbieter-Tools, die den Import von Excel-Daten in SQL Server vereinfachen.
Fazit
Der Datenimport aus Excel-Dateien mit dem Format “Excel 12.0” in SQL Server kann eine frustrierende Erfahrung sein. Obwohl es keine einfache “One-Size-Fits-All”-Lösung gibt, helfen das Verständnis der möglichen Ursachen und die Kenntnis alternativer Importmethoden, das Problem zu beheben und die benötigten Daten in die Datenbank zu bekommen. Es lohnt sich, verschiedene Ansätze auszuprobieren, um die beste Lösung für die jeweilige Umgebung zu finden.