Ich habe mehrere hundert (derzeit 466, aber ständig wachsende) Tabellen, die ich von einem Server auf einen anderen kopieren muss.
Ich musste das noch nie machen, daher bin ich mir nicht sicher, wie ich es angehen soll. Alle Tabellen haben dasselbe Format:Cart<Eight character customer number>
Dies ist Teil eines größeren Projekts, bei dem ich all diese Cart<Number>
Tabellen zu einer Carts
Tabelle zusammenführe, aber das ist eine ganz andere Frage.
Hat jemand eine Best-Practice-Methode, mit der ich alle diese Tabellen kopieren kann? Die Datenbanknamen auf beiden Servern sind gleich, wenn das hilft. Und wie ich bereits sagte, ich habe das sa
Konto, damit ich alles tun kann, um die Daten von A nach B zu bekommen. Beide Server befinden sich ebenfalls in derselben Serverfarm.
quelle
Antworten:
Sie können die Aufgabe "Daten exportieren" von SQL Server Management Studio verwenden. Klicken Sie mit der rechten Maustaste auf die Datenbank in SSMS, wählen Sie Aufgaben und dann "Daten exportieren". Es wird ein interaktiver Assistent gestartet, mit dem Sie Tabellen von einem Server auf einen anderen kopieren können, obwohl Sie die Indizes selbst neu erstellen müssen. Der Assistent erstellt ein temporäres SSIS-Paket (obwohl Sie es auch speichern können) und ist relativ schnell.
quelle
Hier ist ein schneller und unsauberer Ansatz, der nur einen Verbindungsserver in jeder Richtung mit ausreichenden Berechtigungen, Sortierkompatibilität und aktiviertem Datenzugriff benötigt. Sie führen dies auf dem Quell-Verbindungsserver aus, um das dynamische SQL zu generieren, das auf dem Ziel-Verbindungsserver ausgeführt wird.
quelle
Wenn Sie möchten, dass etwas, das per Skript erstellt werden kann, beim Testen leicht wieder ausgeführt werden kann und geringfügige Änderungen vornimmt, lesen Sie meine Antwort hier:
Importieren Sie Daten aus einer Datenbank in ein anderes Skript
Diese Antwort beschreibt die Verwendung einer gespeicherten SQLCLR-Prozedur, die die
SqlBulkCopy
Klasse in .NET verwendet. Die Verwendung dieser gespeicherten Prozedur kann in einem Cursor erfolgen, der die Tabellen durchläuft. Dies ermöglicht eine einfache Bearbeitung des Prozesses sowie die Berücksichtigung neuer Tabellen oder das einfache Ausschließen einer oder mehrerer Tabellen über eineWHERE
Bedingung in der Cursorabfrage.quelle
Sie können BCP OUT und BULK INSERT IN der Zieldatenbank verwenden. Sie können dieses Skript verwenden
Sie können SSIS (Datenimport / -export) auch für die Datenübertragung verwenden .
quelle