Ich muss einen Prozess erstellen, um eine Excel-Tabelle mit mehreren Registerkarten in SQL Server 2008R2 zu importieren. Jede Registerkarte wird eine andere Tabelle in der Datenbank sein. Dies muss wöchentlich erfolgen und Importe sollten automatisiert werden. Im Idealfall möchte ich die Tabelle in einen Ordner [oder haben einige Praktikanten tun] Pop und SQL haben eine Prozedur, die in diesem Ordner sieht, und fügt die Daten zu den Tabellen in dieser Datenbank. Ich möchte auch eine andere Tabelle haben, die die Importe aufspürt und sie mit Datum versieht. Ich habe wirklich keine Ahnung, wo ich überhaupt anfangen soll, da ich ein ziemlich großer Noob bin, wenn es um tsql geht.Importieren von Excel nach SQL Server 2008
Antwort
Wenn Sie ausschließlich auf TSQL
, die beiden oben genannten Antworten, die Sie zeigen einige Ideen begrenzt sind. Wenn Sie Zugriff auf Data Tools
oder Business Intelligence
mit SSIS
haben, können Sie es mit der Annahme automatisieren, dass jedes Blatt in der Excel-Arbeitsmappe jedes Mal übereinstimmt. Mit SSIS
verwenden Sie einen Datenflusstask und jedes Blatt wird in die gewünschte Tabelle importiert. Wenn Sie die nächste Woche für die Datei bereit sind, legen Sie sie in den Ordner und führen das SSIS
-Paket aus.
Wenn sich jedoch die Blattnamen ändern (z. B. eine Woche Blätter heißen Katzen, Hunde, Regen und nächste Woche Schwefel, Feuer, Hölle), würde das Paket kaputt gehen. Wenn sich ansonsten nur die Daten innerhalb des Arbeitsblatts ändern, kann dies mit SSIS vollständig automatisiert werden.
Beispiel Artikel: https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/
Es gibt einen schönen Artikel von Microsoft - http://support.microsoft.com/kb/321686 - der die beteiligten Prozesse umreißt.
Der Prozess ist einfach
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]
Wo XLImport3
die Tabelle, die Sie in importieren möchten und die Datenquelle ist die Excel-Tabelle Sie importieren möchten.
Sie benötigen die Verwendung von 'Ad Hoc Distributed Queries' von sp_configure, um mit zu ermöglichen, zu verwenden 'OpenDatasource' – illumi
Unten ist der Code zum Einfügen von Daten aus einer CSV-Datei in eine bestimmte Tabelle. Ich weiß nicht, was die vollständigen Anforderungen für das Projekt sind, aber wenn ich Sie wäre, würde ich einfach jede Tabelle in eine andere Datei trennen und dann einfach eine Prozedur ausführen, die Daten in jede der Tabellen einfügt.
BULK
INSERT TABLE_NAME
FROM 'c:\filename.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
insert into import_history ('filename', 'import_date') values ('your_file_name', getdate())
Auch für die Tabelle, die Importe und zeitstempelt sie verfolgt, könnte man nach jeder Masseneinfügung einige Daten in dieser Tabelle legen Sie einfach wie oben zu sehen.
Auch hier ist ein Link auf Bulk-Einfügen aus einer CSV-Datei Tutorial, das auch helfen können: http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/
Es ist sehr einfach. Rechtsklick auf die Datenbank in SQL Server (2008), wählen Sie Tasks
und wählen Import Data
nun die DataSource
-Microsoft Excel
ändern. Wählen Sie den Pfad der Excel-Datei aus, indem Sie auf die Schaltfläche Browse
klicken und auf Next
klicken.
Wählen Sie die Sql Server instance
und entschied sich für die Datenbank, auf die die Excel importiert werden.
Select Copy data from one or more tables or views
und Next
klicken.
nun die Blätter auswählen, um zu Sql Server
importiert werden.
Click Next
Jetzt klicken Finish
Nun importiert der Assistent die Daten Excel
-Sql Server
und klicken Close
.
Hier ist der Tisch
Sehen Sie, wo das OP sagt "... sollte automatisiert werden ...." – kfm2000
- 1. Exportieren von SQL Server 2008-Tabellen nach Excel in C#
- 2. Datenbank von SQL-Server 2005 nach SQL-Server 2008 übertragen
- 3. Laden von XML nach SQL Server 2008
- 4. Sql Server Reporting Services 2008 Rendern Excel
- 5. SQL Server 2008 importieren Schema und Daten von ADO.NET Provider?
- 6. Wie zum Importieren von Daten in SQL Server 2008
- 7. SQL Server-Tabellenexport nach Excel Ausgabe
- 8. Exportieren von SQL Server-Daten nach Excel
- 9. Importieren von Excel-Tabelle in SQL Server 2000
- 10. SQL Server: Datenbank von .mdf importieren?
- 11. SQL Server 2008: Zeichenfolge ersetzen
- 12. Suchen nach Sonderzeichen (%) in SQL Server 2008
- 13. Sortieren nach Monat in SQL Server 2008
- 14. Importieren Sie Daten in SQL Server von Web-URL
- 15. Importieren von Daten von Excel nach C#
- 16. SQL Server 2008 R2
- 17. SQL Server 2008 zu SQL Server 2005
- 18. SQL Server Export nach Excel mit OPENROWSET
- 19. Importieren von XML-Inhalten nach Excel
- 20. SQL Server 2008
- 21. SQL Server 2008 SELECT
- 22. SQL Server 2008 Domänenänderung
- 23. Installationsproblem sql Server 2008
- 24. SQL Server 2008-Webverwaltungsskripts?
- 25. SQL Server 2008 Suche
- 26. Excel VBA SQL Server-Daten importieren "type mismatch error"
- 27. Ausführen von SQL Server 7 DTS auf SQL Server 2008
- 28. So importieren Sie Daten aus Excel nach SQL in C#
- 29. Importieren Sie Excel zu SQL Server 2005 mit Sqlbulkupload
- 30. Kürzungsfehler auf SQL Server 2005 von Excel
Ich las den Artikel und es scheint ziemlich stra früh. Würde ich für jede Registerkarte \ Tabelle einen anderen Datenflusszweig erstellen? – d90
@NicholasJDininno Bei mehreren Blättern hätte ich eine Datenflusstask und innerhalb dieser Datenflusstask mehrere Excel-Quellen mit mehreren ADO.NET- oder OLE DB-Verbindungszielen. Wenn Sie wählen, können Sie mehrere Datenflüsse ausführen. Es liegt an dir. – Question3CPO