Wir stehen recht häufig vor der Aufgabe, Datenbankverzeichnisdaten zu migrieren. Die Datenbank für einen Personalvermittlungsdienst, die wir in der vorangegangenen Artikelserie erstellt haben, bildet dabei keine Ausnahme. In diesem Artikel zeigen wir Ihnen, wie Sie Daten in eine .sql-Datei exportieren und anschließend in die Zieldatenbank importieren können. Sie können entweder die gesamte Datenbank oder bestimmte Objekte migrieren, je nachdem, was Sie vorhaben.
Zunächst einmal sollten Sie wissen, dass es viele Möglichkeiten gibt, dieses Problem zu lösen:
- Mit dbForge Data Compare for SQL Server.
- Verwendung der in SSMS eingebetteten Datenexportwerkzeuge.
- Über die Implementierung von SSIS-Paketen.
Die meisten der oben genannten Lösungen sind jedoch zu umständlich, wenn es darum geht, eine oder mehrere Tabellen zu migrieren.
In diesem Artikel werden wir einen Blick auf die Data Pump-Lösung werfen, die ebenfalls Teil von dbForge Studio for SQL Server ist. Dieses Tool erleichtert den Datenimport und -export, da es erweiterte Optionen, Vorlagen und eine Reihe von weit verbreiteten Datenformaten für den Export und Import bietet.
Eine Schritt-für-Schritt-Anleitung für die Erstellung einer Datenbank für einen Personalvermittlungsdienst finden Sie hier.
Abb.1. Datenbankschema für einen Personalvermittlungsdienst
Wie exportiert man SQL Server-Daten in ein SQL-Skript?
- Wählen Sie Datenexport auf Datenbankebene aus
Legen wir los! Wählen Sie die gewünschte Datenbank aus und klicken Sie mit der rechten Maustaste auf die gewünschte Tabelle (wenn Sie eine bestimmte Tabelle exportieren möchten) oder die Datenbank (wenn Sie mehrere Tabellen exportieren möchten) und wählen Sie Export Data:
- Klicken Sie auf Export Data
- Wählen Sie das Exportformat
Auf der Registerkarte Export format können Sie dann zwischen verschiedenen Formaten für den Datenexport wählen. Wir wählen SQL-Skripte und drücken auf Next:
- Wählen Sie die zu exportierenden Daten
Wählen Sie nun auf der Registerkarte Source die Tabellen aus, aus denen Daten exportiert werden sollen, dann klicken Sie auf Next.
In diesem Fall wählen wir drei Verzeichnisse aus:
1. “dbo.Company” – Liste von Unternehmen.
2. “dbo.Position” – Liste der Stellen.
3. “dbo.Skill” – Liste der Fähigkeiten.
Beachten Sie, dass es möglich ist, die Verbindung und die Datenbank jederzeit zu ändern. - Wählen Sie die Art der Skripterstellung
Wählen Sie dann auf der Registerkarte Options die Art der Skripterstellung für den Datenexport aus und legen Sie fest, ob Sie den Datenbanknamen in das Skript aufnehmen möchten. Klicken Sie dann auf Next.
Beachten Sie, dass das Fenster 4 Arten der Skripterstellung für den Datenexport vorschlägt:
1. INSERT (EINFÜGEN). Ein Skript für das Einfügen von Daten wird generiert.
2. UPDATE (AKTUALISIEREN). Ein Skript für die Aktualisierung von Daten wird generiert, d.h. die passenden Schlüsselfelder werden gefunden und die Aktualisierung wird durchgeführt.
3. DELETE (LÖSCHEN). Ein Skript zum Löschen von Daten wird generiert, d.h. alle Daten, die mit den exportierten Daten nach Schlüsselfeldern auf der Seite der Zieldatenbank übereinstimmen, werden gelöscht.
4. MERGE (ZUSAMMENFÜHREN). Ein Skript zum Zusammenführen von Daten wird generiert, welches die ersten beiden Typen umfasst: INSERT und UPDATE. - Wählen Sie die Spalten und Schlüsselfelder für den Export aus
Auf der Registerkarte Table columns müssen Sie nun die erforderlichen Spalten und Schlüsselfelder für den Export auswählen (standardmäßig werden alle Spalten für den Export ausgewählt, und die Schlüsselfelder entsprechen den Definitionen der Primärschlüssel der entsprechenden Tabellen). Klicken Sie dann auf Next:
- Wählen Sie die zu exportierenden Daten aus
Wählen Sie anschließend auf der Registerkarte Exported rows die zu exportierenden Daten aus und klicken Sie auf Next. Beachten Sie, dass Sie sowohl alle Zeilen als auch einen genauen Bereich von Zeilen für den Datenexport auswählen können.
- Konfigurieren Sie die Registerkarte Errors handling
Zusätzlich können Sie auf der Registerkarte Errors handling Parameter für die Fehlerbehandlung konfigurieren.
Beachten Sie, dass User häufig die Option Write a report to a log file wählen, wenn sie die Berichtsergebnisse analysieren müssen. Der Einfachheit halber sollten Sie die Standardoptionen beibehalten und auf Export klicken, um mit dem Datenexport zu beginnen. - Schließen Sie den Datenexport ab
Wenn der Datenexport abgeschlossen ist, können Sie entweder auf Finish klicken oder den Ordner mit den erstellten Skripten öffnen, indem Sie auf die Schaltfläche Open result folder klicken:
- Lassen Sie sich die Skripte anzeigen
Als Ergebnis werden für jede Verzeichnistabelle 3 Skripte erstellt:
Das T-SQL-Skript sieht folgendermaßen aus:
SET DATEFORMAT ymd
SET ARITHABORT, ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, NOCOUNT ON
SET NUMERIC_ROUNDABORT, IMPLICIT_TRANSACTIONS, XACT_ABORT OFF
GO
SET IDENTITY_INSERT JobEmplDB.dbo.Skill ON
GO
INSERT JobEmplDB.dbo.Skill(SkillID, SkillName) VALUES (689, N'C#')
...
INSERT JobEmplDB.dbo.Skill(SkillID, SkillName) VALUES (14, N'SQL')
GO
SET IDENTITY_INSERT JobEmplDB.dbo.Skill OFF
GO
Sie müssen die generierten Skripte auf die Zieldatenbank anwenden.
Was aber, wenn die Daten in einem anderen Format gespeichert wurden?
Hierfür gibt es den Datenimport, den Sie öffnen können, indem Sie mit der rechten Maustaste auf die Datenbank oder die gewünschte Tabelle klicken:
Abb.12. Auswahl des Datenimports auf Datenbankebene
Abb.13. Auswahl des Datenimports auf Tabellenebene
Machen Sie so weiter, wie wir den Datenexport durchgeführt haben. Besuchen Sie auch das Dokumentationszentrum, um mehr darüber zu erfahren, wie Sie Daten aus einer CSV-Datei importieren können. CSV ist ein kompaktes Textformat, das zum Speichern von Tabellendaten verwendet wird. Außerdem ist es ein sehr verbreitetes Format, da die meisten modernen Tabellenkalkulationsprogramme (wie Excel) mit Dateien im CSV-Format arbeiten können (Export/Import von Daten).
Das war’s erstmal. Diesmal haben wir uns mit dem Import und Export von Daten in eine SQL-Datei mithilfe einer hochgradig anpassbaren Lösung von dbForge Studio for SQL Server beschäftigt.