343 Stimmen

Kopieren von Tabellen aus einer Datenbank in eine andere in SQL Server

Ich habe eine Datenbank namens foo und eine Datenbank namens bar. Ich habe eine Tabelle in foo mit dem Namen tblFoobar, die ich von der Datenbank foo in die Datenbank bar verschieben möchte (Daten und alles). Wie lautet die SQL-Anweisung, um dies zu tun?

545voto

David Punkte 5591

Die Aufgabe "Daten importieren" von SQL Server Management Studio (klicken Sie mit der rechten Maustaste auf den DB-Namen und dann auf "Aufgaben") übernimmt den größten Teil dieser Aufgabe für Sie. Führen Sie sie von der Datenbank aus, in die Sie die Daten kopieren möchten.

Wenn die Tabellen nicht vorhanden sind, werden sie für Sie erstellt, aber Sie müssen wahrscheinlich alle Indizes usw. neu erstellen. Wenn die Tabellen vorhanden sind, werden die neuen Daten standardmäßig angehängt, aber Sie können das anpassen (Mappings bearbeiten), so dass alle vorhandenen Daten gelöscht werden.

Ich verwende diese Methode ständig und sie funktioniert recht gut.

222voto

Amy B Punkte 104656

Auf SQL Server? und auf demselben Datenbankserver? Verwenden Sie eine dreiteilige Namensgebung.

INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar

Dadurch werden lediglich die Daten verschoben. Wenn Sie die Tabellendefinition (und andere Attribute wie Berechtigungen und Indizes) verschieben wollen, müssen Sie etwas anderes tun.

119voto

leoinfo Punkte 7582

Das sollte funktionieren:

SELECT * 
INTO DestinationDB..MyDestinationTable 
FROM SourceDB..MySourceTable 

Sie wird no Beschränkungen, Vorgaben oder Indizes kopieren. Die erstellte Tabelle wird no einen geclusterten Index haben.

Alternativ können Sie auch:

INSERT INTO DestinationDB..MyDestinationTable 
SELECT * FROM SourceDB..MySourceTable

Wenn Ihre Zieltabelle existiert und leer ist.

47voto

Igor Voplov Punkte 963

Wenn es sich nur um eine Tabelle handelt, müssen Sie nur folgende Schritte ausführen

  • Definition der Skripttabelle
  • Neue Tabelle in einer anderen Datenbank erstellen
  • Regeln, Indizes, Berechtigungen und dergleichen aktualisieren
  • Daten importieren (mehrere Beispiele für das Einfügen in sind bereits oben gezeigt)

Eine Sache, die Sie berücksichtigen müssen, sind weitere Aktualisierungen wie die Migration anderer Objekte in der Zukunft. Beachten Sie, dass Ihre Quell- und Zieltabellen nicht denselben Namen haben. Das bedeutet, dass Sie auch Änderungen vornehmen müssen, wenn Sie Objekte wie Ansichten, gespeicherte Prozeduren und andere abhängen.

Bei einem oder mehreren Objekten können Sie ohne Probleme manuell vorgehen. Wenn es jedoch mehr als nur ein paar Aktualisierungen gibt, sind Vergleichstools von Drittanbietern sehr nützlich. Im Moment benutze ich ApexSQL Diff für Schemamigrationen, aber Sie können mit keinem anderen Tool auf dem Markt etwas falsch machen.

23voto

ScottStonehouse Punkte 23245
  1. Skript der create table in Management Studio das Skript in der Leiste ausführen, um die Tabelle zu erstellen. (Rechtsklick auf die Tabelle im Objekt-Explorer, Skript Tabelle als, Erstellen in...)

  2. INSERT bar.[schema].table SELECT * FROM foo.[schema].table

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X