Tabellen clonen/transportieren

04/08/2008 - 19:56 von ekkehard.horner | Report spam
Anknuepfend an Rainer Quecks Frage "xsd -> sdf" (16.07.2008) wuerde ich gerne
wissen, wie man generell die Aufgabe "Tabellen von einer DB in eine andere
transportieren/clonen" angehen sollte.

Gegeben sei also eine Quell-DB, deren Tabellen mit "CREATE TABLE" statements
erzeugt und wie auch immer gefuellt wurden. Falls die neu anzulegende Ziel-DB
von gleicher Art ist, kann man die "CREATE TABLE" statements wiederverwenden,
ein Dataset aus Quell-DB fuellen und gegen Ziel-DB updaten; oder DBMS-spezifische
Transportmethoden verwenden. Wenn nun Ziel-DB aber von anderer Art (MySQL ->
SQLite, MDB -> SDF, MSSQL -> MDB, ... ) ist und man subtile Unterschiede zwischen
den DBMS nicht durch mehrere Saetze von "CREATE TABLE" statements abbilden moechte?

Kann man

(a) einen Commandbuilder zur Generierung von "CREATE TABLE" statements
ueberreden?

(b) die mit GetSchema zugaenglichen Meta-Informationen des Dataset an irgend-
wen oder -was schicken, der/das passende Tabellen in Ziel-DB erzeugt?

(c) ein "Laden aus XML-Datei" so anstossen/durchfuehren, dass die notwendigen
Tabellen automagisch angelegt werden?

Oder gibt es ganz andere Strategien?

Vielen Dank!
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
05/08/2008 - 20:39 | Warnen spam
Hallo Ekkekard,

"ekkehard.horner" schrieb:

(a) einen Commandbuilder zur Generierung von "CREATE TABLE" statements
ueberreden?



Nö.

(b) die mit GetSchema zugaenglichen Meta-Informationen des Dataset an irgend-
wen oder -was schicken, der/das passende Tabellen in Ziel-DB erzeugt?



Klar. Das "irgendwen oder -was" musst Du aber selbst schreiben, etwas fertiges
gibts AFAIK im Framework dafür nicht.

(c) ein "Laden aus XML-Datei" so anstossen/durchfuehren, dass die notwendigen
Tabellen automagisch angelegt werden?



Siehe Antwort zu b)

Oder gibt es ganz andere Strategien?



Du könntest sowas natürlich selbst schreiben und es der Allgemeinheit zur
Verfügung stellen. Ich denke schon, dass viele an sowas Interesse hàtten.
Im Endeffekt müsstest Du nur eine Collection aufbauen, die die einzelnen
Attribute der Spalten (Name, Datentyp, Defaultwert, PrimaryKey, ForeignKey,
Indizes, Contraints, ) aufnimmt und daraus dann je nach Ziel-
datenbank die entsprechenden Statements generieren.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen