MS SQL-Server: alte DB in neue DB importieren!?

Guten Tag alle miteinander!

Ich habe seit langem eine etwas ältere Datenbank in Benutzung, die mir jedoch inzwischen nicht mehr ganz ausreicht und somit habe ich mir eine neue erweiterte Datenbank (mehr Tabellen und andere Verteilung der Datenfelder zwecks Redundanzen) erstellt. Beide Datenbanken wurden mit dem MS SQL-Server 2005 Express erstellt. Allerdings stehe ich nun vor dem Problem die alten Daten von der Datenbank in die neue Datenbank zu importieren ohne zu wissen wie ich das anstellen kann. Es wäre wirklich sehr schön, wenn ihr mir eine möglichst einfache Lösung sagen könntet. Vllt so, dass ich nur das nötigste manuell nachtragen muss aber nicht alle Daten komplett neu eingeben muss!? Es gibt doch sicherlich eine Importfunktion im MS SQL-Server oder? Ich habe da was von einem DTS-Import/Export-Assistenten gelesen aber nicht genau wo ich den finde und wie es funktioniert…

Vielen Dank!
Toni

Guten Morgen!

Weiss denn keiner hier eine Antwort? Das muss doch irgendwie gehen… :frowning:

Hi,

also wenn ich das richtig verstehe, dann hast du neue Tabellen in der neuaufgebauten Datenbank und die Tabellen die mit der alten Instanz identisch sind, sind umgebaut worden - zusätzliche Felder, oder aus einer Tabelle einen Teil in einer neuen Tabelle ausgelagert - richtig ?

Wenn das so ist, dann kannst du die Daten nicht einfach exportieren und importieren, da das Import-Toll ja nicht weiß wie du die neue Instanz designed hast.

2 Möglichkeiten:

1.Verbindung zwischen den beiden Datenbanken/Schemata herstellen (sollte bei MS-SQL möglich sein, oder ?) und dann kannst du die Daten mit „insert into schema1.new_table (1,2,3,…) select 1,2,3,… from schema2.old_table where…“
Dabei kannst du dann auch sehr frei wählen welche Daten übernommen werden, ob doppelte verschwinden sollen etc.

  1. Du erzeugst die neuen Tabellen in der alten Datenbank und die die „nur“ geändert werden, erzeugst du mit table_new, dann wieder mit „insert into table_new select X from table…“
    Wenn du alle Daten kopiert hast, dann kannst du die alten Tabellen löschen und die neuen mit "alter table rename " umbenennen

Grüße

Chris

Danke!
Ja du hast es richtig verstanden! =)
Kannst du mir aber bitte dennoch die 1. Lösung nochmal etwas verständlicher erklären bzw. einen Link geben, bei dem alles Schritt für Schritt erklärt ist?!
Eine Lösung wie diese bei google books Seite 820 hatte ich gestern Abend gefunden… sowas ohne SQL Befehle hast du nicht zufällig parat oder? Denn dort sieht alles so einfach aus, wenn vorher nicht Seiten fehlen würden… -->

http://books.google.de/books?id=EppaemKMVV0C&pg=PA27…

Nochmals Danke! Erstmal gut zu wissen das es geht einzelne Spalten von Tabellen in völlig anders aufgebaute Tabellen einer neuen Datenbank zu transferieren.

Grüße!
Toni

Hallo,
ohne SQL Kenntnisse wirst du da nicht weiter kommen.
Es gibt kein Tool welches automatisch erkennt welche Tabellenstrukturen du nun hast und welche Daten wohin kopiert werden müssen. Das weiß nur der Entwickler und der sollte auch wissen wie man die Daten transformieren kann.
Im Grunde kann du so etwas mit jeder Programmiersprache + SQL machen die sich auf die Datenbank Instanzen verbinden kann.
Das ist täglich Brot jedes Datenbank-Entwicklers. Und jede Transformation wird mit viel Aufwand geschrieben um sie dann im optimalen Fall ein einziges Mal einzusetzen.

Der Link verweist auf den DTS (Data Transformation Service).
Den gibt es seit SQLServer 2005 nicht mehr.
Dort heißt er nun SSIS (SQL Server Integration Services).

Beides spielt für dich aber keine Rolle, weil:

  1. Gibt es dieses Tool nur in der Vollversion vom SQLServer und nicht in der Express Version
  2. Muss man sich dort auch erstmal eine Weile einarbeiten.

Mein Tipp: suche dir jemanden der das kann. Weil hier im Forum wird die keine eine fertige Lösung liefern können.

Gruss
Joey

1 Like

Guten Tag,

Hm… naja dann muss ich mir mal jemanden suchen, der das kann und mir bei Gelegenheit auch mal erklärt. Schade, dass SSIS nur in der Vollversion dabei ist. Nunja… also dennoch Danke!

Gruß Toni