Ich habe eine Datenbank namens foo und eine Datenbank namens bar. Ich habe eine Tabelle in foo mit dem Namen tblFoobar, die ich (Daten und alle) aus der Datenbank foo in die Datenbankleiste verschieben möchte. Was ist die SQL-Anweisung, um dies zu tun?
sql
sql-server
copy
migrate
database-table
RyanKeeter
quelle
quelle
Die Aufgabe "Daten importieren" von SQL Server Management Studio (Rechtsklick auf den DB-Namen, dann Aufgaben) erledigt das meiste für Sie. Führen Sie es aus 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 und dergleichen neu erstellen. Wenn die Tabellen vorhanden sind, werden die neuen Daten standardmäßig angehängt. Sie können dies jedoch anpassen (Zuordnungen bearbeiten), sodass alle vorhandenen Daten gelöscht werden.
Ich benutze das die ganze Zeit und es funktioniert ziemlich gut.
quelle
WHERE
Bedingung mithilfe der Aufgabe Daten importieren anzugeben ? Ich konnte keinen Weg finden, dies zu tun.identity
undforeign key
Verweise werden in der Zieldatenbank entfernt. Gibt es eine Lösung?Das sollte funktionieren:
Es werden keine Konstanten, Standardeinstellungen oder Indizes kopiert. Die erstellte Tabelle hat keinen Clustered-Index.
Alternativ können Sie:
Wenn Ihre Zieltabelle existiert und leer ist.
quelle
INSERT INTO...
) hat bei mir in Oracle funktioniert.Wenn es sich nur um einen Tisch handelt, müssen Sie nur noch etwas tun
Eine Sache, die Sie berücksichtigen müssen, sind andere Updates, z. B. die Migration anderer Objekte in der Zukunft. Beachten Sie, dass Ihre Quell- und Zieltabellen nicht denselben Namen haben. Dies bedeutet, dass Sie auch Änderungen vornehmen müssen, wenn Sie abhängige Objekte wie Ansichten, gespeicherte Prozeduren und andere verwenden.
Mit einem oder mehreren Objekten können Sie ohne Probleme manuell wechseln. Wenn es jedoch mehr als nur ein paar Updates gibt, sind Vergleichstools von Drittanbietern sehr praktisch. Im Moment verwende ich ApexSQL Diff für Schemamigrationen, aber Sie können mit keinem anderen Tool etwas falsch machen.
quelle
Skript das
create table
in Management Studio, führen Sie dieses Skript in der Leiste aus, um die Tabelle zu erstellen. (Klicken Sie mit der rechten Maustaste auf die Tabelle im Objekt-Explorer, schreiben Sie die Tabelle als, erstellen Sie, um ...)INSERT bar.[schema].table SELECT * FROM foo.[schema].table
quelle
SET IDENTITY_INSERT TblName ON
In diesem Fall müssen Sie dies auch tun .Sie können auch den Assistenten zum Generieren von SQL Server-Skripten verwenden , um die Erstellung von SQL-Skripten zu unterstützen, die Folgendes tun können:
Gutes Beispiel für einen Workflow für SQL Server 2008 mit den hier gezeigten Screenshots .
quelle
Sie können diesen Weg gehen: (ein allgemeines Beispiel)
Wenn Sie auch die Spaltennamen generieren müssen, um die Einfügungsklausel einzufügen, verwenden Sie:
Kopieren Sie das Ergebnis und fügen Sie es in das Abfragefenster ein, um die Namen Ihrer Tabellenspalten darzustellen. Dadurch wird auch die Identitätsspalte ausgeschlossen:
Denken Sie daran, dass das Skript zum Kopieren von Zeilen funktioniert, wenn die Datenbanken zum selben Speicherort gehören.
Sie können dies versuchen.
Der Servername ist optional, wenn sich beide DBs auf demselben Server befinden.
quelle
Wenn eine Tabelle vorhanden ist und wir nur Daten kopieren möchten, können wir diese Abfrage versuchen.
in Destination_Existing_Tbl einfügen wählen Sie col1, col2 FROM Source_Tbl
quelle
Daten kopieren
quelle