# Tabelle von einer Datenbank in eine Andere



## Marie Curie (13. Jan 2008)

Hallo zusammen,

habe versucht, die Datensaetze aus einer Tabelle der ersten Datenbank in eine neue Tabelle der zweiten Datenbank zu übertragen.

Das mache ich nach folgendem Muster:


```
INSERT INTO tabellen(spalte1, spalte2, spalte3)
VALUES
(1, 'bla', 'bla'), 
(2, 'bla', 'bla'), 
(3, 'bla', 'bla')
```

Wenn es aber irgendwann mal zu viele Datensaetze werden, werden diese nicht mehr in die Datenbank übertragen. Gibt es eine Möglichkeit eine komplette Tabelle aus einer Datenbank zu übernehmen, ohne jeden einzelnen Datensatz ansprechen zu müssen?

Oder gibt es eine andere Möglichkeit, die Datensaetze zu übertragen (außer copy/paste...) 

Danke für eure Hilfe,

liebe Grüße, Marie


----------



## FenchelT (13. Jan 2008)

Hallo,

beim MSSQL Server kannst Du sowas uber den Full-Qualified-Name machen; sollte aber eigentlich bei anderen DBMS genauso funktionieren.

Wenn Du Daten standardmaessig aus einer Tabelle ausliest machst DU das ueber

```
SELECT feld
FROM tabelle
```

Mit dem Full-Qualified-Name wuerde das dann so aussehen

```
SELECT feld
FROM server.datenbank.[schema/owner].tabelle
```

Und genauso kannst Du dann Inhalte von Tabellen auf andere Server kopieren, sofern dort auch eine Zieltabelle vorhanden ist.


```
INSERT INTO Zielserver.datenbank.[schema/owner].tabelle
SELECT *
FROM Quellserver.datenbank.[schema/owner].tabelle
```

[Schema/Owner] musst Du mal nachlesen, ob das von Deinem DBMS gefordert wird, oder probier es einfach aus.


----------



## Marie Curie (14. Jan 2008)

Hi,

habe das nach deinem Schema jetzt ausprobiert. Ich arbeite mit mySQL und PSQL (Pervasive SQL) Datenbanken.

Ich erhalte seitens meiner PSQL Datenbank folgenden Fehler:



> [Pervasive][ODBC Client Interface][LNA][Pervasive][ODBC Engine Interface]Syntax Error: INSERT INTO tab.pervasive SELECT * FROM JDBC:ODBC<< ??? >>:EBB3.AU090



Nach dem ODBC scheint da noch was zu fehlen...kann es sich dabei um das Schema/Owner handeln?
Hab danach gesucht, aber für meine DB nichts dergleichen gefunden.

Zur Info:
Beide DB's sind lokal.

Wenn ich das Statement von der mySQL Verbindung her ausführe, erhalte ich folgenden (ähnlichen) Fehler:


> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':ODBC:EBB3.AU090' at line 1



Vielleicht kannst du mir da weiter helfen?

Danke im Voraus!

Liebe Grüße,
Marie


----------



## FenchelT (14. Jan 2008)

Hallo,

nein, dann kann das auch nicht funktionieren. Ich bin davon ausgegangen, Quell- und Ziel-DBMS seien identisch,
allerdings auf unterschiedlichen Servern.  :roll: 

Am einfachsten, wie ich finde, geht das was Du vorhast, indem Du Dir in Access beide Tabellen verknuepfst und dann die 
Daten mittels INSERT into Tabelle SELECT * FROm tabelle (vorausgesetzt die Felder sind wirklcih gleich) von
der einen in die andere Tabelle schaufelst.

Gruesse


----------



## Marie Curie (14. Jan 2008)

Das Problem an der Sache ist:

Access steht in dem Fall nicht zur Verfügung, denn das ganze soll eigentlich dynamisch von statten gehn. Heisst es läuft im Hintergrund bei Programmaufruf ab.

Hatte außer deinem Ansatz noch eine andere (eigentlich logische) Idee:
Ich schreibe das Result aus DB1 mit nem INSERT-Stmt in DB2. 

EDIT: Wie ich gerade sehe funktioniert es doch 

Trotzdem hätte mir deine Lösung besser gefallen, schade dass es nicht mit unterschiedl. Systemen funktioniert!

Aber trotz allem danke für deine Hilfe 

Liebe Grüße
Marie


----------

