Freigeben über


Kopieren von Daten zwischen Servern

Um Daten von einer Microsoft SQL Server-Datenbank in eine andere massenzuübertragen, müssen zunächst Daten aus der Quelldatenbank in eine Datei massenexportiert werden. Die Datei wird dann in die Zieldatenbank massenimportiert.

Wichtiger HinweisWichtig

Für eine Datenbank, die das einfache Wiederherstellungsmodell verwendet, wird nach dem Massenimport von Daten in eine Tabelle eine differenzielle Sicherung empfohlen. Für eine Datenbank, die das massenprotokollierte oder vollständige Wiederherstellungsmodell verwendet, ist eine Protokollsicherung ausreichend. Weitere Informationen finden Sie unter Erstellen einer vollständigen und einer differenziellen Sicherung einer SQL Server-Datenbank oder Verwenden von Transaktionsprotokollsicherungen.

Kopieren von Daten zwischen Servern mithilfe von bcp oder Transact-SQL

Mit dem bcp-Befehl können Sie Daten exportieren oder importieren, und mit der BULK INSERT-Anweisung oder der INSERT ... SELECT * FROM OPENROWSET(BULK...) Transact-SQL-Anweisung können Sie Daten importieren. Weitere Informationen finden Sie unter Importieren und Exportieren von Massendaten mithilfe des Dienstprogramms bcp und Importieren von Massendaten mithilfe von BULK INSERT oder OPENROWSET(BULK...).

Mit den bcp-Befehlen können Daten im systemeigenen, Zeichen- oder Unicode-Format zwischen verschiedenen Instanzen von SQL Server auf unterschiedlichen Prozessorarchitekturen kopiert werden. Falls Flexibilität erforderlich ist, kann eine Formatdatei verwendet werden. Das Format oder die Formatdatei, mit dem bzw. der die Daten exportiert werden, muss auch zum Importieren der Daten verwendet werden.

HinweisHinweis

Falls Sie Daten zwischen Serverinstanzen kopieren, die unterschiedliche Sortierungen verwenden, finden Sie weitere Informationen unter Kopieren von Daten zwischen unterschiedlichen Sortierungen.

Speichern von Informationen im systemeigenen Unicode-Format

Es ist nützlich, Informationen im systemeigenen Unicode-Format zu speichern, wenn Informationen zwischen Instanzen von SQL Server kopiert werden müssen. Durch die Verwendung des systemeigenen Formats bei nicht auf Zeichen basierenden Daten kann Zeit eingespart werden, und die unnötige Konvertierung der Datentypen in und aus dem Zeichenformat entfällt. Der Verlust von Zeichen ist dann möglich, wenn Sonderzeichen in Spalten kopiert werden, die nicht auf Unicode basieren, und das Sonderzeichen nicht dargestellt werden kann. Die Verwendung des Unicode-Zeichenformats für alle Zeichendaten verhindert, dass es zum Verlust von Sonderzeichen beim Massenübertragen von Daten zwischen Servern mit unterschiedlichen Codepages kommt. Eine Datendatei im systemeigenen Unicode-Format kann jedoch vom Hilfsprogramm bcp oder von den Transact-SQL-Anweisungen gelesen werden, die den Massenimport unterstützen: BULK INSERT oder INSERT ... SELECT * FROM OPENROWSET(BULK...).

Zusätzliche Methoden zum Kopieren von Daten zwischen Datenbanken

Neben der Verwendung von bcp oder Transact-SQL können Sie im Allgemeinen Daten mithilfe der folgenden Methoden zwischen SQL Server-Datenbanken kopieren:

  • Mit dem Import/Export-Assistenten von Integration Services (SSIS)

    Dieser Assistent kann auf eine große Anzahl von Datenquellen zugreifen. Daten können von und nach SQL Server, Flatfiles, Microsoft Access, Microsoft Excel und anderen OLE DB-Anbietern kopiert werden. Weitere Informationen finden Sie unter Verwenden des SQL Server-Import/Export-Assistenten zum Verschieben von Daten.

  • Mit verteilten Abfragen als Teil einer INSERT-Anweisung. Weitere Informationen finden Sie unter Verteilte Abfragen und INSERT (Transact-SQL).

  • Mit der SELECT INTO-Anweisung, die angibt, dass mithilfe des Resultsets eine neue Tabelle erstellt wird. Weitere Informationen finden Sie unter SELECT (Transact-SQL).

HinweisHinweis

Weitere Informationen zum Kopieren vollständiger Datenbanken finden Sie unter Kopieren von Datenbanken auf andere Server.