Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.443 Beiträge
 
Delphi 7 Professional
 
#2

AW: Inhalt von externer Datenbank-Tabelle kopieren

  Alt 3. Mai 2024, 11:11
Hab' mal bei 'ner KI nachgefragt:
Zitat von Frage:
Wie kann ich in Access per SQL-Insert eine Tabelle aus einer externen Datenbankdatei in meine eigene Datenbankdatei kopieren, die Tabellenstrukturen sind identisch?
Zitat von Antwort:
Um eine Tabelle aus einer externen Access-Datenbank in Ihre eigene Datenbank zu kopieren, können Sie die 'INSERT INTO'-Anweisung in Kombination mit der 'SELECT'-Anweisung verwenden. Hier ist ein allgemeines Beispiel, wie Sie dies tun können:
SQL-Code:
INSERT INTO ZielTabelle
SELECT * FROM [MS Access;DATABASE=PfadZurQuelldatenbank].QuellTabelle
Zitat von Fortsetzung der Antwort:
In diesem Beispiel:
- 'ZielTabelle' ist der Name der Tabelle in Ihrer Datenbank, in die Sie die Daten einfügen möchten.
- 'PfadZurQuelldatenbank' ist der vollständige Pfad zur externen Access-Datenbankdatei, aus der Sie die Daten kopieren möchten.
- 'QuellTabelle' ist der Name der Tabelle in der externen Datenbank, aus der Sie die Daten kopieren möchten.

Bitte beachten Sie, dass diese Methode davon ausgeht, dass die Struktur der Quell- und Zieltabelle identisch ist. Wenn die Strukturen nicht identisch sind, müssen Sie die spezifischen Felder angeben, die Sie kopieren möchten, sowohl in der 'INSERT INTO'- als auch in der 'SELECT'-Anweisung.

Zum Beispiel:
SQL-Code:
INSERT INTO ZielTabelle (Feld1, Feld2, Feld3)
SELECT Feld1, Feld2, Feld3 FROM [MS Access;DATABASE=PfadZurQuelldatenbank].QuellTabelle
Zitat von Fortsetzung der Antwort:
In diesem Fall sind 'Feld1', 'Feld2' und 'Feld3' die spezifischen Felder, die Sie kopieren möchten. Stellen Sie sicher, dass die Reihenfolge und der Datentyp der Felder in der 'INSERT INTO'- und 'SELECT'-Anweisung übereinstimmen.

Bitte ersetzen Sie die Platzhalter in den obigen Beispielen durch Ihre tatsächlichen Tabellennamen, Feldnamen und den Pfad zur Quelldatenbank.

Bitte beachten Sie auch, dass Sie für diese Operation die entsprechenden Berechtigungen zum Lesen der Quelldatenbank und zum Schreiben in die Zieldatenbank benötigen.

Ich hoffe, das hilft! Wenn Sie weitere Fragen haben, lassen Sie es mich bitte wissen. ??
Zitat von Frage:
Wäre ein SQL folgender Form auch möglich oder müsste hier dann mit Fehlern gerechnet werden bzw. werden dann einfach nur keine Daten übernommen?
SQL-Code:
INSERT INTO Belege([*]) //bestehende Tabelle
  SELECT *
      FROM ([D:\KINGSTON\Tools\database\tools.mdb].[Belege]) ; //externe Tabelle
Zitat von Antwort:
In SQL ist die Syntax '[*]' nicht gültig. Die korrekte Syntax, um alle Spalten auszuwählen, ist '*' ohne eckige Klammern. Daher sollte Ihr SQL-Statement wie folgt aussehen:
SQL-Code:
INSERT INTO Belege
SELECT *
FROM [MS Access;DATABASE=D:\KINGSTON\Tools\database\tools.mdb].Belege
Zitat von Fortsetzung der Antwort:
In diesem Statement:
- 'Belege' ist der Name der Tabelle in Ihrer Datenbank, in die Sie die Daten einfügen möchten.
- 'D:\KINGSTON\Tools\database\tools.mdb' ist der vollständige Pfad zur externen Access-Datenbankdatei, aus der Sie die Daten kopieren möchten.
- Das zweite 'Belege' ist der Name der Tabelle in der externen Datenbank, aus der Sie die Daten kopieren möchten.

Bitte beachten Sie, dass diese Methode davon ausgeht, dass die Struktur der Quell- und Zieltabelle identisch ist. Wenn die Strukturen nicht identisch sind, müssen Sie die spezifischen Felder angeben, die Sie kopieren möchten, sowohl in der 'INSERT INTO'- als auch in der 'SELECT'-Anweisung.

Ich hoffe, das hilft! Wenn Sie weitere Fragen haben, lassen Sie es mich bitte wissen. ??
  Mit Zitat antworten Zitat